6

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

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

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

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

我将不胜感激任何帮助!

非常感谢您,

托马斯

4

3 回答 3

8

对于希望“以编程方式”取消选择 ListView 的 OP 或其他人。如果您的 ListView 设置为 Single、Extended 或 Multiple,您始终可以:

YourlistView.Selecteditem = null;
于 2014-06-24T16:32:47.970 回答
4

看起来你只是错过TargetType了风格。ListViewItem按照下面肯特的原始代码 添加目标类型。

<ListView.ItemContainerStyle>         
    <Style TargetType="ListViewItem">             
        <Setter Property="IsSelected" Value="{Binding IsGroovy}"/>               
    </Style>   
</ListView.ItemContainerStyle> 
于 2012-08-28T17:50:56.110 回答
2

或者你也可以使用它:

YourlistView.UnselectAll();
于 2020-08-05T12:33:04.053 回答