【问题标题】:Get HeaderClick event of a WPF listview获取 WPF 列表视图的 HeaderClick 事件
【发布时间】:2009-05-22 04:04:43
【问题描述】:

如何获取 WPF Listview 的 headerclick 事件?

【问题讨论】:

  • 说真的!为什么你不能谷歌或查看 MSDN 来获取这些信息?!
  • 是的,很难不同意,丹尼斯。我猜是因为它是“GridViewColumnHeader”,它可能有点难以搜索,但它可能比输入问题并等待答案更容易。
  • 如果您是 WPF 的新手,那么该事件的存在并不是那么明显。它既不在属性窗格中,也不在 Visual Studio 2010 的 IntelliSense 中。

标签: wpf events listview wpf-controls


【解决方案1】:

您可以使用 GridViewColumnHeader.Click 附加事件。例如,请参阅 sorting a GridView when the header is clicked 上的 MSDN 页面。

<ListView x:Name='lv' 
          Height="150" 
          HorizontalAlignment="Center" 
          VerticalAlignment="Center" 
          GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">

【讨论】:

  • 此类适用于儿童的事件不会显示在 Intellisense 中 - 编辑器无法知道您可能想要使用哪些事件!
  • 工作得很好,这就是我得到绑定列的方式,\string columnProperty = ((Binding)columnHeader.Column.DisplayMemberBinding).Path.Path;
【解决方案2】:

只是为了扩展上一个答案,如何知道点击了哪个标题:

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 , 方向); stackoverflow.com/questions/388708/…>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2016-09-02
相关资源
最近更新 更多