如果已选择相同的项目WPF,则取消选择ListView项目

如果已选择相同的项目WPF,则取消选择ListView项目,wpf,Wpf,我在WPF中有一个ListView集合 比如说苹果、香蕉、樱桃 假设用户首先选择了香蕉 如果用户再次单击香蕉,则该项目仍处于选中状态 如果已经选择了相同的项目,我想在用户单击时取消选择该项目。将SelectionMode设置为Multiple,或者根据您是否希望选择多个项目来处理ListViewItem容器的PreviewMouseLeftButtonDown事件: private void ListViewItem_PreviewMouseLeftButtonDown(object sende

我在WPF中有一个ListView集合

比如说苹果、香蕉、樱桃

假设用户首先选择了香蕉

如果用户再次单击香蕉,则该项目仍处于选中状态


如果已经选择了相同的项目,我想在用户单击时取消选择该项目。

SelectionMode
设置为
Multiple
,或者根据您是否希望选择多个项目来处理
ListViewItem
容器的
PreviewMouseLeftButtonDown
事件:

private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    ListViewItem lvi = (ListViewItem)sender;
    if (lvi.IsSelected)
    {
        e.Handled = true;
        lvi.IsSelected = false;
    }
}
XAML:

<ListView xmlns:s="clr-namespace:System;assembly=System.Runtime">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="PreviewMouseLeftButtonDown" 
                         Handler="ListViewItem_PreviewMouseLeftButtonDown" />
        </Style>
    </ListView.ItemContainerStyle>
    <s:String>Apple</s:String>
    <s:String>Banana</s:String>
    <s:String>Cherry</s:String>
</ListView>

苹果
香蕉
樱桃