2015-09-15 3 views
0

В функции «Обновить» для 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 и программно установить столбец для сортировки (и фактически сортировать строки по этому столбцу)?

ответ

0

После некоторых дополнительных исследований на примере SortDataGrid в этом SO Q & помог мне: Sort a wpf datagrid programmatically

Кажется, что я должен был рассматриваться также с DataGridItems.SortDescriptions, а также.

0

Не уверен, что это поможет вам, но почему бы не сохранить выбранное SortDirection в setting и загрузить его, когда вам это нужно?

Смежные вопросы