如何记住排序

本文关键字:排序 何记住 | 更新日期: 2023-09-27 18:12:50

在WPF DataGrid的"Refresh"函数中,我试图在将项目重新加载到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;
   }
使用上面的代码,我确实得到了"排序列"的视觉提示,但是新加载的项并没有真正排序,所以这有点像海市蜃楼。我在sortCol.Direction = sd之后尝试了docsDataGrid.Items.Refresh(),但数据网格没有以编程方式拾取排序方向集。

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

如何记住排序

在进行了一些额外的研究之后,本文中的SortDataGrid示例对我有所帮助:

似乎我也应该处理DataGridItems。

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