Ich habe eine App mit mehreren ListView-Steuerelementen, wo eine Anforderung besteht, dass die Elemente in der ListView vollständig sichtbar sein müssen. Es sollte niemals ein Teil von ListViewItem in der Liste angezeigt werden. Wenn der Benutzer den ScrollViewer an einer Position freigibt, an der ein Teilelement angezeigt wird, sollte die Liste "einrasten" und sich selbst korrigieren, sodass nur vollständige Elemente angezeigt werden.WPF ListView Zeige immer komplette Artikel
Hat jemand das schon mal gemacht? Ich denke, ich muss ListView und/oder ScrollViewer überlasten, um dies zu tun. Ich suche nach Vorschlägen, wie ich das angehen kann. Vielen Dank.
Hier ist eine meiner Listen:
<ctrls:SnapList x:Name="PART_ProductList"
ScrollViewer.CanContentScroll="False"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ItemContainerStyle="{StaticResource ProductFinderItem}"
Canvas.Top="373" Canvas.Left="75"
Height="910" Width="900" >
<ctrls:SnapList.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" />
</ItemsPanelTemplate>
</ctrls:SnapList.ItemsPanel>
<ctrls:SnapList.Template>
<ControlTemplate>
<ScrollViewer x:Name="Scroller" VerticalAlignment="Top" CanContentScroll="True" Style="{StaticResource VertScrollViewer}" Focusable="false" >
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ctrls:SnapList.Template>
</ctrls:SnapList>
Welchen ScrollViewer sprechen Sie? Haben Sie einen ScrollViewer in einem Grid (oder etwas), das mehrere ListViews enthält, und wenn dieser ScrollViewer seine Position ändert, möchten Sie sicherstellen, dass alle ListViewItems sichtbar sind? Für eine ListView selbst kann ich nicht einmal Teilelemente anzeigen. –
Ich spreche über den ScrollViewer in der ControlTemplate der Liste. Ich habe den XAML für eine der Listen zu meinem Beitrag hinzugefügt. Der ScrollViewer, von dem ich spreche, ist der mit x: Name = "Scroller" im Beispiel XAML. –
* ListBox * hat das exakt gleiche Verhalten standardmäßig. Können Sie eine * ListBox * anstelle einer * ListView * verwenden? – decyclone