Caixa de listagem IsSelected com SelectionMode = Extended

Desculpe pelo título vago, não consegui encontrar uma boa maneira de resumir o que está acontecendo.

Eu tenho uma caixa de listagem WPF vinculada:

<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>

Eu quero operar apenas os itens selecionados. Eu faço isso iterando uma lista de todos os itens e verificando cada objeto para ver se a propriedade IsSelected está definida.

Isso funciona, exceto quando eu tenho muitos itens na lista (o suficiente para que eles não fiquem todos visíveis) e pressiono CTRL-A para selecionar todos os itens. Quando faço isso, todos os itens visíveis têm sua propriedade IsSelected definida como true e todo o restante é deixado como false. Assim que eu rolar para baixo, os outros itens aparecem e suas propriedades IsSelected são definidas como verdadeiras.

Existe alguma maneira de corrigir esse comportamento para que a propriedade IsSelected de cada objeto é definida como true quando eu pressionar CTRL-A?

questionAnswers(2)

yourAnswerToTheQuestion