No se pudieron obtener los elementos seleccionados correctamente si configuramos ListView ItemsContainer como VirtualizationStackPanel

Configuré 'VirtualizingStackPanel.IsVirtualizing' en verdadero y 'VirtualizingStackPanel.VirtualizationMode' en 'Recycling', porque los elementos en mi ListView son demasiados. El modo de selección de ListView está extendido, la propiedad 'IsSelected' de ListViewItem está vinculada a la propiedad 'IsSelected' de mi modelo, el modo de enlace es bidireccional.

Cuando quiero usar Ctrl + A para seleccionar todos los elementos, solo selecciona parte de los elementos, por lo que uso KeyBinding para escribir el método de seleccionar todo como se muestra a continuación:

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

El método SelectAll repetirá la colección ItemsSource y establecerá cada una de las propiedades IsSelected del elemento en true. Pero también lleva a algo inesperado. Cuando se seleccionan todos los elementos, desplazo la barra de desplazamiento hacia la parte inferior y cargará más elementos en ListView, solo hago clic en un elemento y lo esperado es que todos los demás elementos no estén seleccionados, solo selecciono este elemento. Pero, parece no anular la selección de otros elementos.

¿Alguien puede ayudar?