获取WPF ListView的HeaderClick事件

3
如何获取WPF Listview的headerclick事件?

3
认真点!你为什么不能用谷歌或查看MSDN获取这个信息呢?! - Dennis
1
是的,很难不同意,Dennis。我猜可能因为它是“GridViewColumnHeader”,所以搜索起来可能有点困难,但与其输入问题并等待答案,直接搜索可能会更容易些。 - Matt Hamilton
1
如果你对WPF还比较陌生,那么可能不太清楚这个事件的存在。在Visual Studio 2010中,它既不在属性窗格中,也不在智能感知中。 - matsolof
2个回答

11
您可以使用GridViewColumnHeader.Click附加事件。例如,参见MSDN页面上的在单击标题时对GridView进行排序
<ListView x:Name='lv' 
          Height="150" 
          HorizontalAlignment="Center" 
          VerticalAlignment="Center" 
          GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">

5
像这样适用于儿童的事件不会出现在Intellisense中——编辑器无法知道您可能想要使用哪些事件! - Matt Hamilton
完美地工作了,这就是我得到绑定列的方法, \string columnProperty = ((Binding)columnHeader.Column.DisplayMemberBinding).Path.Path; - sudarsanyes
链接已经失效。请尝试使用以下链接:https://msdn.microsoft.com/zh-cn/library/ms745786(v=vs.100).aspx - user586399

1

为了进一步解释之前的答案,如何知道点击了哪个标题:

XAML:

<ListView GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">

CS:

private void SortHeaderClick(object sender, RoutedEventArgs e)
{
    MessageBox.Show(((GridViewColumnHeader)e.OriginalSource).Column.Header.ToString());
}

如果有人正在寻找在获取WPF ListView EventHandler后通过有序LINQ查询对ListView项目进行排序的可能性,那么这里有一个简洁的解决方案:var query = dataList.OrderByWithDirection(x => x.Property, direction); https://dev59.com/wnRC5IYBdhLWcg3wK9yV - Ivan Silkin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接