VirtualizingStackPanel + MVVM + selección múltiple

He implementado un patrón de selección similar al descrito enesta publicación utilizando un ViewModel para almacenar el valor de IsSelected, y vinculando elListViewItem.IsSelected al ViewModel está seleccionado:

<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
    </Style>
</ListView.ItemContainerStyle>

Funciona en general, pero me encuentro con un problema grave. Usando la aVirtualizingStackPanel como el panel en la vista de lista, solo el visibleListViewItem se están creando. Si utilizo "Ctrl + A" para seleccionar todos los elementos, o al usar una combinación de accesos directos como "Shift + Ctrl + End" en el primer elemento, todos los elementos se seleccionan, pero para los elementos no visibles, ViewModel no obtiene su IsSelected establecer en true Eso es lógico, porque si elListViewItem no se crean, el enlace no puede funcionar.

Cualquiera experimentó el mismo problema y encontró una solución (aparte de no usar unVirtualizingStackPanel)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta