Listbox wird mit SelectionMode = Extended ausgewählt
Entschuldigung für den vagen Titel, ich konnte mir keinen guten Weg einfallen lassen, um zusammenzufassen, was passiert.
Ich habe eine gebundene WPF-Listbox:
<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>
Ich möchte NUR die ausgewählten Elemente bearbeiten. Ich durchlaufe dazu eine Liste aller Elemente und überprüfe jedes Objekt, um festzustellen, ob die IsSelected-Eigenschaft festgelegt ist.
Dies funktioniert nur, wenn ich viele Elemente in der Liste habe (genug, damit nicht alle sichtbar sind) und ich STRG-A drücke, um alle Elemente auszuwählen. Wenn ich das tue, haben alle sichtbaren Elemente ihre IsSelected-Eigenschaft auf true gesetzt und alle anderen bleiben auf false. Sobald ich nach unten scrolle, werden die anderen Elemente angezeigt und ihre IsSelected-Eigenschaften werden auf true gesetzt.
Gibt es eine Möglichkeit, dieses Verhalten zu beheben, sodass die IsSelected-Eigenschaft jedes Objekts auf true festgelegt wird, wenn ich STRG-A drücke?