Caixa de listagem "IsSelected" ligação apenas parcialmente trabalhando

eu tenho umListBox que eu preenchimento dinamicamente através de uma ligação (isto é definido em umDataTemplate, e é por isso que a ligação é um tanto incomum):

<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'sIsSelected propriedade está vinculada a umIsSelected propriedade em um objeto personalizado.

Quando eu seleciono indivíduoListBoxItems, a ligação funciona corretamente - o objeto personalizadoIsSelected A propriedade é atualizada no meu ViewModel. No entanto, se eu selecionar todos osListBoxItems com um comando Ctrl + A, apenas o visível no momentoListBoxItems (aqueles que estão atualmente em minha viewport de rolagem) atualizam suas ligações ViewModel. No frontend, todo oListBoxItems parecem estar selecionados eListBox.SelectedItems.Count propriedade no contêinerListBox mostra que todos os itens estão selecionados.

Além disso, enquanto percorro oListBox depois de selecionar todosListBoxItems com Ctrl + A, as ligações são atualizadas com sucesso quando cadaListBoxItem é rolado para a vista.

Por que essa ligação parece estar funcionando apenas parcialmente? Existe uma maneira melhor de lidar com a ligação doIsSelected propriedade quando um grande número deListBoxItems pode ser selecionado simultaneamente?

Editar: Esse comportamento não acontece exclusivamente com o comando Ctrl + A - obtenho os mesmos resultados ao selecionar todos os itens usando um shift + click.

questionAnswers(1)

yourAnswerToTheQuestion