Tengo un ViewModel
que tiene una propiedad que IsSelected
Ato en mi ListView.ItemContainerStyle
XAML a un IsSelected
propiedad en mi modelo de vista.WPF Encuadernación IsSelected al modelo de vista no establece los elementos que no se han mostrado en la Lista
que aparezca la solicitud y rellenar la colección vista del modelo (que se muestra en mi ListView
) con una gran cantidad de artículos, digamos alrededor de 2000. Luego seleccione todo en la lista a través de Ctrl-A. Los elementos en mi colección de modelos de vista solo obtienen el IsSelected
establecido para los artículos que están visibles en el ListView
. Si navego por la lista, el IsSelected
se configura para los elementos que se muestran. Si visualizo todos los elementos, todos los elementos de mi modelo de vista tienen la propiedad IsSelected
establecida en verdadero.
Aquí es mi XAML para la unión del IsSelected
en la vista de lista a mi vista del modelo:
<ListView Margin="5" ItemsSource="{Binding FilteredComparisonList}" x:Name="comparisonListView">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="Source filename" DisplayMemberBinding="{Binding ImageFile.BaseFilename}" Width="Auto" />
</GridView>
</ListView.View>
</ListView>
¿Por qué no es IsSelected
para todos los artículos en mi modelo de vista establecidas en true cuando selecciono todas las partidas en el ListView
?
Por cierto, esta es esencialmente la misma pregunta que esta: http://stackoverflow.com/questions/1273659/virtualizingstackpanel-mvvm-multiple-selection – Charlie
Gracias Charlie, no sé cómo me perdí esa publicación. Esa publicación tiene una buena solución para este problema, que consiste en pasar los elementos seleccionados como un parámetro de comando en lugar de mantener IsSelected en el modelo de vista. – Buck