VirtualizingStackPanel + MVVM + Mehrfachauswahl
Ich habe ein Auswahlmuster implementiert, das dem in beschriebenen ähneltdieser Beitrag Verwenden eines ViewModel zum Speichern des IsSelected-Werts und Binden desListViewItem.IsSelected
zum ViewModel IsSelected:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
</ListView.ItemContainerStyle>
Es funktioniert im Allgemeinen, aber ich stoße auf ein ernstes Problem. Mit dem aVirtualizingStackPanel
Als Panel in der Listenansicht wird nur das Sichtbare angezeigtListViewItem
werden erstellt. Wenn ich "Strg + A" verwende, um alle Elemente auszuwählen, oder wenn ich eine Tastenkombination wie "Umschalt + Strg + Ende" für das erste Element verwende, werden alle Elemente ausgewählt, aber für die nicht sichtbaren Elemente erhält das ViewModel nicht seine IsSelected auf true setzen. Das ist logisch, denn wenn dieListViewItem
nicht erstellt werden, kann die Bindung nicht funktionieren.
Jeder erlebte das gleiche Problem und fand eine Lösung (abgesehen davon, dass er keinVirtualizingStackPanel
)?