在列标题中获取网格数据单击

时间:2010-03-29 16:22:18

标签: wpf gridview

Sorrry伙计们,我被困在这里。

我有几个网格,我还有与这些网格关联的CollectionViewSource对象。

现在,我正在尝试在ColumnHeaderClick方法中应用CollectionViewSource.SortDescriptions,现在我必须为每个网格定义几乎相同的方法。

但我唯一需要的是获得Grid正在发生的事情。

如何实现,我不知道。请帮帮我。

VisualTreeHelper.GetParent不起作用。

2 个答案:

答案 0 :(得分:0)

我认为,最好的方法是派生自己的网格控件,添加您想要的常用功能。至于找到被点击的列,这里有一些源代码....

protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e)
{
   base.OnPreviewMouseLeftButtonUp(e);
   if ( e.OriginalSource is GridViewColumnHeader)
   {
      GridViewColumn col = ((GridViewColumnHeader)e.OriginalSource).Column as GridViewColumn;
     DoStuffWithYourColumn( col );
   }
}
哦,有一件事,你真的应该使用自定义排序器而不是排序描述 - 排序描​​述真的很慢。请查看this article以获取有关此主题的更多信息。

答案 1 :(得分:0)

哦..事实证明,可以直接在

中更改SortDesriptions

(((System.Windows.Controls.ListBox)(发送者))。产品)