Cuadro de lista IsSelected with SelectionMode = Extended

Perdón por el vago título, no pude encontrar una buena manera de resumir lo que está sucediendo.

Tengo un cuadro de lista de WPF enlazado:

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

Quiero operar SOLO en los artículos seleccionados. Hago esto mediante la iteración a través de una lista de todos los elementos y verificando cada objeto para ver si su propiedad está seleccionada.

Esto funciona excepto cuando tengo muchos elementos en la lista (lo suficiente para que no todos estén visibles) y presiono CTRL-A para seleccionar todos los elementos. Cuando hago esto, todos los elementos visibles tienen su propiedad IsSelected establecida en true, y todos los demás quedan en falso. Tan pronto como me desplazo hacia abajo, los otros elementos aparecen a la vista y sus propiedades IsSelected se establecen en verdadero.

¿Hay alguna forma de corregir este comportamiento para que la propiedad IsSelected de cada objeto se establezca como verdadera cuando presiono CTRL-A?

Respuestas a la pregunta(2)

Su respuesta a la pregunta