如果已经选择了WPF,则取消选择ListView Item

时间:2020-06-01 13:25:52

标签: wpf

我在WPF中有一个ListView集合。

让我们说的东西是苹果,香蕉,樱桃。

假设用户首先选择了香蕉。

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

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

1 个答案:

答案 0 :(得分:1)

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

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>