當您單擊用戶可排序的標題時,現在(默認)DataGridColumn
按第一次點擊升序排序並在第二次點擊降序排序。如何更改WPF DataGridColumn上的第一個排序方向
如何使其按第一次點擊降序和第二次點擊升序進行排序?
當您單擊用戶可排序的標題時,現在(默認)DataGridColumn
按第一次點擊升序排序並在第二次點擊降序排序。如何更改WPF DataGridColumn上的第一個排序方向
如何使其按第一次點擊降序和第二次點擊升序進行排序?
我想出了一個辦法做到這一點,不知道這是否是最好的方式。但基本上,當排序事件觸發並且當前SortDirection爲空時,我將它設置爲Ascending,以便默認排序器將SortDirection反轉爲遞減,並且這僅發生在第一次排序上,因爲這是SortDirection爲空的唯一時間。
myGrid.Sorting += (s, e) => e.Column.SortDirection = e.Column.SortDirection ?? ListSortDirection.Ascending;
我在Winforms中做過類似的事情。處理DataGrid.Sorting事件,然後以編程方式反轉排序順序,如果它不是「無」。
檢查這個鏈接是什麼,這看起來像在的WinForms: DataGridViewColumn initial sort direction
我覺得這是你要找的人...
http://blogs.msdn.com/b/vinsibal/archive/2008/08/29/wpf-datagrid-tri-state-sorting-sample.aspx
在他們使用DataGrid中的排序有一個國家以上的博客的方式..
這裏的我接受的答案的擴展版本(我不是那種緊湊符號的粉絲):
private void _myGrid_Sorting(object sender, DataGridSortingEventArgs e)
{
if (e.Column.SortDirection == null)
e.Column.SortDirection = ListSortDirection.Ascending;
}
爲什麼我們不能只說:「e.Column.SortDirection = ListSortDirection.Ascending」? – Joe
@Joe嘿,它是因爲我只想將它設置爲ListSortDirection.Ascending,如果這個值以前從未設置過(SortDirection == null)......基本上這個技巧是第一次點擊排序方向時它會觸發這個事件中,您將當前的空SortDirection設置爲升序,以便網格可以看到它當前正在升序,然後將其翻轉爲降序... –
哦...我現在看到了...我想我必須有錯誤 - 我第一次看到它時閱讀你的代碼。 – Joe