现在(默认),当您单击用户可排序的标题时,DataGridColumn
它会在第一次单击时按升序排序,在第二次单击时按降序排序。
如何让它在第一次点击时降序排列,在第二次点击时升序排列?
我想出了一个方法来做到这一点,不知道这是否是最好的方法。但基本上,当排序事件触发并且当前 SortDirection 为空时,我将其设置为升序,以便默认排序器将排序方向反转为降序,并且这只发生在第一次排序时,因为这是唯一一次 SortDirection 为空。
myGrid.Sorting += (s, e) => e.Column.SortDirection = e.Column.SortDirection ?? ListSortDirection.Ascending;
这是已接受答案的扩展版本(我不喜欢这种紧凑的符号):
private void _myGrid_Sorting(object sender, DataGridSortingEventArgs e)
{
if (e.Column.SortDirection == null)
e.Column.SortDirection = ListSortDirection.Ascending;
}
我在 Winforms 中做过类似的事情。处理 DataGrid.Sorting 事件,然后以编程方式反转排序顺序(如果它不是“无”)。
检查此链接以了解 WinForms 中的内容: DataGridViewColumn 初始排序方向
我想这就是你正在寻找的方式......
https://docs.microsoft.com/en-us/archive/blogs/vinsibal/wpf-datagrid-tri-state-sorting-sample
在上面的博客中,他们在 DataGrid 中使用了另一种排序状态。