El cuadro de lista "IsSelected" enlace sólo funciona parcialmente
tengo unListBox
que relleno dinámicamente a través de un enlace (esto se define en unaDataTemplate
, por lo que la unión es algo inusual):
<ListBox SelectionMode="Extended" ItemsSource="{Binding DataContext.ResultList, RelativeSource={RelativeSource AncestorType=Window}}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Object}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
CadaListBoxItem
esIsSelected
la propiedad está vinculada a unaIsSelected
propiedad en un objeto personalizado.
Cuando selecciono individualListBoxItem
s, el enlace funciona correctamente - el objeto personalizadoIsSelected
La propiedad se actualiza en mi ViewModel. Sin embargo, si selecciono todos losListBoxItem
s con un comando Ctrl + A, solo el visible actualmenteListBoxItem
s (los que están actualmente en mi ventana de desplazamiento) actualizan sus enlaces ViewModel. En la parte frontal, todos losListBoxItem
s parecen estar seleccionados, y laListBox.SelectedItems.Count
propiedad en el contenedorListBox
muestra que todos los elementos están seleccionados.
Además, mientras me desplazo por laListBox
después de seleccionar todoListBoxItem
s con Ctrl + A, los enlaces se actualizan con éxito cuando cada unoListBoxItem
se desplaza a la vista.
¿Por qué esta unión parece estar funcionando solo parcialmente? ¿Hay una mejor manera de manejar la unión de laIsSelected
propiedad cuando grandes cantidades deListBoxItems
¿Se puede seleccionar simultáneamente?
Editar: Este comportamiento no ocurre exclusivamente con el comando Ctrl + A: obtengo los mismos resultados al seleccionar todos los elementos con Mayús + clic.