WPF ListView以编程方式取消选择项目

时间:2012-08-13 14:44:38

标签: c# listview data-binding selection

我使用以下方法将我的项目的IsSelected绑定到属性:WPF ListView Programmatically Select Item

<ListView.ItemContainerStyle>
    <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</ListView.ItemContainerStyle>

现在,我可以通过简单地将IsSelected属性设置为true来选择代码中的项目。但是,我无法通过将my items的IsSelected属性设置为false来取消选择项目。

设置items属性IsSelected为true将触发ListViewSelectionChanged事件。但是,将已选择项的属性IsSelected设置为false不会触发该事件。该属性将更改为false,但该项目仍在ListView中保持选中状态。我也试过使用Mode = TwoWay而没有任何成功。

我希望得到任何帮助!

非常感谢您提前,

托马斯

3 个答案:

答案 0 :(得分:3)

对于OP或其他以编程方式&#34;&#34;取消选择ListView。 如果您的ListView被绑定为Single,Extended或Multiple,您可以随时:

YourlistView.Selecteditem = null;

答案 1 :(得分:2)

您似乎错过了TargetType的样式。根据Kent的原始代码添加目标类型ListViewItem

<ListView.ItemContainerStyle>         
    <Style TargetType="ListViewItem">             
        <Setter Property="IsSelected" Value="{Binding IsGroovy}"/>               
    </Style>   
</ListView.ItemContainerStyle> 

答案 2 :(得分:1)

或者您也可以使用它:

YourlistView.UnselectAll();