抱歉标题含糊不清,我想不出一个好方法来总结正在发生的事情。
我有一个绑定的 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>
我只想对选定的项目进行操作。我通过遍历所有项目的列表并检查每个对象以查看它的 IsSelected 属性是否已设置来做到这一点。
这有效,除非我在列表中有很多项目(足够所以它们不是全部可见)并且我按 CTRL-A 选择所有项目。当我这样做时,所有可见项目的 IsSelected 属性都设置为 true,其余的都为 false。当我向下滚动时,其他项目就会出现,然后它们的 IsSelected 属性设置为 true。
有没有办法解决这个问题,以便当我按下 CTRL-A 时每个对象的 IsSelected 属性都设置为 true?