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)?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage