Listbox IsSelected z SelectionMode = Rozszerzony

Przepraszam za niejasny tytuł, nie mogłem wymyślić dobrego sposobu podsumowania tego, co się dzieje.

Mam związany listbox WPF:

<UserControl.Resources>
    <DataTemplate DataType="{x:Type local:MyBoundObject}">
        <TextBlock Text="{Binding Label}" />
    </DataTemplate>
</UserControl.Resources>

<ListBox ItemsSource="{Binding SomeSource}" SelectionMode="Extended">
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Setter Property="IsSelected Value="{Binding Path=IsSelected, Mode=TwoWay}"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

Chcę operować TYLKO na wybranych elementach. Robię to, przeglądając listę wszystkich elementów i sprawdzając każdy obiekt, aby sprawdzić, czy jest ustawiona właściwość IsSelected.

Działa to z wyjątkiem sytuacji, gdy mam wiele pozycji na liście (na tyle, że nie wszystkie są widoczne) i naciskam CTRL-A, aby zaznaczyć wszystkie elementy. Gdy to zrobię, wszystkie widoczne elementy mają ustawioną właściwość IsSelected na true, a wszystkie pozostałe pozostają fałszywe. Gdy tylko przewinę w dół, inne elementy zostaną wyświetlone, a ich właściwości IsSelected zostaną ustawione na true.

Czy jest jakiś sposób na naprawienie tego zachowania, aby właściwość IsSelected każdego obiektu była ustawiona na true, gdy naciskam CTRL-A?

questionAnswers(2)

yourAnswerToTheQuestion