He implementado un patrón de selección similar al descrito en this post usando un modelo de vista para almacenar el valor IsSelected, y mediante la unión del ListViewItem.IsSelected
a la ViewModel IsSelected:VirtualizingStackPanel + MVVM + selección múltiple
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
</ListView.ItemContainerStyle>
funciona en general, pero encuentro un problema grave. Al utilizar el a VirtualizingStackPanel
como panel en la vista de lista, solo se está creando el ListViewItem
visible. Si utilizo "Ctrl + A" para seleccionar todos los elementos o si utilizo una combinación de atajos como "Mayús + Ctrl + Fin" en el primer elemento, todos los elementos se seleccionan, pero para los elementos no visibles, ViewModel no obtiene su nombre. establecido en verdadero. Eso es lógico, porque si el ListViewItem
no se crea, el enlace no puede funcionar.
¿Alguien tuvo el mismo problema y encontró una solución (aparte de no usar un VirtualizingStackPanel
)?
Pruebe esta solución completa para este problema: http://stackoverflow.com/a/29545790 – nvkokorin