Sorrry伙计们,我被困在这里。
我有几个网格,我还有与这些网格关联的CollectionViewSource对象。
现在,我正在尝试在ColumnHeaderClick方法中应用CollectionViewSource.SortDescriptions,现在我必须为每个网格定义几乎相同的方法。
但我唯一需要的是获得Grid正在发生的事情。
如何实现,我不知道。请帮帮我。
VisualTreeHelper.GetParent不起作用。
答案 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)(发送者))。产品)