Ausgewählte Elemente konnten nicht korrekt abgerufen werden, wenn ListView ItemsContainer als VirtualizationStackPanel festgelegt wurde

Ich habe 'VirtualizingStackPanel.IsVirtualizing' auf true und 'VirtualizingStackPanel.VirtualizationMode' auf 'Recycling' gesetzt, weil die Elemente in meiner ListView zu viele sind. Der SelectionMode der ListView ist Extended, die 'IsSelected'-Eigenschaft des ListViewItem ist an die' IsSelected'-Eigenschaft meines Modells gebunden, der Bindemodus ist bidirektional.

Wenn ich Strg + A verwenden möchte, um alle Elemente auszuwählen, wird nur ein Teil der Elemente ausgewählt. Daher verwende ich KeyBinding, um die Methode select all wie folgt zu schreiben:

 <KeyBinding Command="{Binding SelectAllCommand}"
                            Modifiers="Control"
                            Key="A"/>

Die SelectAll-Methode durchläuft die ItemsSource-Auflistung und setzt jede IsSelected-Eigenschaft des Elements auf true. Es führt aber auch zu etwas Unerwartetem. Wenn alle Elemente ausgewählt sind, scrolle ich mit der Bildlaufleiste nach unten und es werden mehr Elemente in die Listenansicht geladen. Ich klicke einmal auf ein Element und es wird erwartet, dass alle anderen Elemente nicht ausgewählt sind. Wähle nur dieses Element aus. Es scheint jedoch nicht, andere Elemente abzuwählen.

Kann jemand helfen?