gpt4 book ai didi

WPF ListView - 检测何时单击所选项目

转载 作者:行者123 更新时间:2023-12-01 19:19:53 24 4
gpt4 key购买 nike

我正在使用 WPF ListView 控件,该控件显示数据绑定(bind)项的列表。

<ListView ItemsSource={Binding MyItems}>
<ListView.View>
<GridView>
<!-- declare a GridViewColumn for each property -->
</GridView>
</ListView.View>
</ListView>

我正在尝试获得类似于 ListView.SelectionChanged 的行为事件,只有我还想检测当前选定的项目是否被单击。 SelectionChanged如果再次单击相同的项目(显然),事件不会触发。

解决这个问题的最佳(最干净)方法是什么?

最佳答案

使用ListView.ItemContainerStyle属性为ListViewItems提供一个EventSetter,它将处理PreviewMouseLeftButtonDown事件。然后,在处理程序中,检查所单击的项目是否已被选中。

XAML:

<ListView ItemsSource={Binding MyItems}>
<ListView.View>
<GridView>
<!-- declare a GridViewColumn for each property -->
</GridView>
</ListView.View>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>
</ListView>

隐藏代码:

private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var item = sender as ListViewItem;
if (item != null && item.IsSelected)
{
//Do your stuff
}
}

关于WPF ListView - 检测何时单击所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com