5

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

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

4

4 回答 4

8

我想出了一个方法来做到这一点,不知道这是否是最好的方法。但基本上,当排序事件触发并且当前 SortDirection 为空时,我将其设置为升序,以便默认排序器将排序方向反转为降序,并且这只发生在第一次排序时,因为这是唯一一次 SortDirection 为空。

myGrid.Sorting += (s, e) => e.Column.SortDirection = e.Column.SortDirection ?? ListSortDirection.Ascending;
于 2012-06-15T00:52:13.410 回答
1

这是已接受答案的扩展版本(我不喜欢这种紧凑的符号):

private void _myGrid_Sorting(object sender, DataGridSortingEventArgs e)
{
    if (e.Column.SortDirection == null)
        e.Column.SortDirection = ListSortDirection.Ascending;
}
于 2014-02-10T21:13:46.690 回答
0

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

检查此链接以了解 WinForms 中的内容: DataGridViewColumn 初始排序方向

于 2012-06-15T00:31:38.827 回答
0

我想这就是你正在寻找的方式......

https://docs.microsoft.com/en-us/archive/blogs/vinsibal/wpf-datagrid-tri-state-sorting-sample

在上面的博客中,他们在 DataGrid 中使用了另一种排序状态。

于 2012-06-15T05:46:25.360 回答