所以我有一个简单的vanilla DataGrid,它绑定了ICollectionView。
我处理DataGrid的Sorting事件,并将e.Handled设置为true,以抑制它的默认行为,由于某种原因,一旦我尝试清除ICollectionView的SortDescriptions,并添加两个排序描述,它绝对没有任何意义,它根本不尊重次要种类。这是我的简单代码:
private void DataGrid_OnSorting(object sender, DataGridSortingEventArgs e)
{
DataGrid dataGrid = (DataGrid)sender;
e.Handled = true;
ListSortDirection direction = (column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
var col = (DataContext as TeamModel).Players;
col.SortDescriptions.Clear();
col.SortDescriptions.Add(new SortDescription("Id", ListSortDirection.Ascending));
col.SortDescriptions.Add(new SortDescription("Name", direction));
}
我只想简单地进行主要和次要排序,但似乎什么也没做。
有什么想法吗?
答案 0 :(得分:0)
完成编辑SortDescriptions后,您需要调用ICollectionView的.Refresh()
col.Refresh();
或者您可以使用其他方法
using(col.DeferRefresh())
{
col.SortDescriptions.Clear();
col.SortDescriptions.Add(new SortDescription("Id", ListSortDirection.Ascending));
col.SortDescriptions.Add(new SortDescription("Name", direction));
}