如何记住排序

时间:2015-09-15 23:41:30

标签: c# wpf sorting datagrid

在"刷新" WPF DataGrid的函数,我试图在将项重新加载到DataGrid之前保存排序条件,加载新项,然后设置先前的排序标准。我使用此代码:

   void Refresh(DataGrid docsDataGrid) {
        var sd = ListSortDirection.Ascending;
        DataGridColumn sortCol = null;
        foreach (var column in DocsDataGrid.Columns)
        {
            if (column.SortDirection != null)
            {
                sd = (ListSortDirection)column.SortDirection;
                sortCol = column;
            }
        }

        docsDataGrid.ItemsSource = GetLatestItems();
        sortCol.SortDirection = sd;
   }

使用上面的代码,我确实得到了" sorted column"的视觉提示,但是新加载的项目并没有真正排序,所以它有点像海市蜃楼。我在docsDataGrid.Items.Refresh()之后尝试使用sortCol.Direction = sd,但数据网格没有以编程方式设置排序方向。

如何利用DataGrid的内置排序工具并以编程方式设置要排序的列(实际按该列对行进行排序)?

2 个答案:

答案 0 :(得分:1)

经过一些额外的研究后,这个SO Q& A中的SortDataGrid示例帮助了我:Sort a wpf datagrid programmatically

似乎我也应该处理DataGridItems.SortDescriptions。

答案 1 :(得分:0)

不确定这是否会对您有所帮助,但为什么不在setting中保存选定的SortDirection并在需要时加载它?