WPF listbox再次点击取消选中后台代码
时间: 2023-09-22 09:05:44 浏览: 287
wpf ListBox 资源管理器样式以及代码
4星 · 用户满意度95%
在 WPF ListBox 中实现再次点击取消选中的功能,需要在后台代码中获取选中项并将其取消选中。可以通过在 ListBox 控件的 SelectionChanged 事件中获取选中项,然后判断其是否已经选中,如果是,则将其取消选中。具体实现方式如下:
1. 在 XAML 中,为 ListBox 控件的 SelectionChanged 事件添加一个事件处理程序。
```
<ListBox x:Name="listBox" SelectionChanged="listBox_SelectionChanged">
...
</ListBox>
```
2. 在后台代码中,使用 SelectionChangedEventArgs 中的 AddedItems 属性和 RemovedItems 属性获取当前选中的项和取消选中的项。
```
private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
foreach (object item in e.AddedItems) // 获取当前选中的项
{
ListBoxItem listBoxItem = listBox.ItemContainerGenerator.ContainerFromItem(item) as ListBoxItem;
if (listBoxItem != null && listBoxItem.IsSelected) // 判断当前项是否已选中
{
listBoxItem.IsSelected = false; // 取消选中
}
}
}
```
在上面的代码中,我们首先使用 ItemContainerGenerator 的 ContainerFromItem 方法获取 ListBoxItem 对象,然后判断其是否已选中,如果是,则将其设为未选中。这样,当用户再次点击已选中的项时,它会自动取消选中。
阅读全文