如何在WPF DataGridColumn上更改第一个排序方向

时间:2012-06-15 00:07:11

标签: wpf datagrid

现在(默认)当您单击用户可排序DataGridColumn上的标题时,它会在第一次单击时按升序排序,在第二次单击时按降序排序。

如何在第一次点击时按降序排序,在第二次点击时按升序排序?

4 个答案:

答案 0 :(得分:8)

我找到了一种方法,不确定它是否是最佳方式。但基本上当排序事件触发并且当前SortDirection为null时,我将其设置为Ascending,以便默认排序器将SortDirection反转为降序,这仅在第一次排序时发生,因为这是SortDirection为空的唯一时间。 / p>

myGrid.Sorting += (s, e) => e.Column.SortDirection = e.Column.SortDirection ?? ListSortDirection.Ascending;

答案 1 :(得分:0)

我在Winforms中做过类似的事情。处理DataGrid.Sorting事件,然后以编程方式反转排序顺序,如果它不是“none”。

检查此链接以了解WinForms中的内容: DataGridViewColumn initial sort direction

答案 2 :(得分:0)

我认为这就是你要找的方式......

http://blogs.msdn.com/b/vinsibal/archive/2008/08/29/wpf-datagrid-tri-state-sorting-sample.aspx

在上面的博客中,他们在DataGrid中再使用一种Sorting状态..

答案 3 :(得分:0)

以下是已接受答案的扩展版本(我不是那种紧凑符号的粉丝):

private void _myGrid_Sorting(object sender, DataGridSortingEventArgs e)
{
    if (e.Column.SortDirection == null)
        e.Column.SortDirection = ListSortDirection.Ascending;
}