В функции «Обновить» для 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;
}
С кода выше, я получаю визуальную подсказку «отсортированный столбец», но недавно загруженные пункты на самом деле не сортируются, так что это немного мираж. Я пробовал с docsDataGrid.Items.Refresh()
после sortCol.Direction = sd
, но datagrid не выбирает направление сортировки, установленное программно.
Как я могу использовать встроенные средства сортировки DataGrid и программно установить столбец для сортировки (и фактически сортировать строки по этому столбцу)?