VirtualizingStackPanel + MVVM + seleção múltipla

Eu implementei um padrão de seleção semelhante ao descrito emesta postagem usando um ViewModel para armazenar o valor IsSelected, e ligando oListViewItem.IsSelected para o ViewModel IsSelected:

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

Funciona em geral, mas me deparo com um problema grave. Usando o aVirtualizingStackPanel como o painel na exibição de lista, apenas o visívelListViewItem estão sendo criados. Se eu uso "Ctrl + A" para selecionar todos os itens, ou usando a combinação de atalhos como "Shift + Ctrl + End" no primeiro item, todos os itens são selecionados, mas para os itens não visíveis, o ViewModel não obtém seu IsSelected definido como verdadeiro. Isso é lógico, porque se oListViewItem não são criados, a ligação não pode funcionar.

Alguém experimentou o mesmo problema e encontrou uma solução (além de não usarVirtualizingStackPanel)

questionAnswers(3)

yourAnswerToTheQuestion