Как изменить направление первой сортировки в WPF DataGridColumn

Прямо сейчас (по умолчанию), когда вы нажимаете на заголовок сортируемого пользователемDataGridColumn сортирует по возрастанию по первому клику и по убыванию по второму.

Как мне сделать сортировку по убыванию при первом щелчке и по возрастанию при втором?

Ответы на вопрос(4)

Решение Вопроса

не уверен, что это лучший способ. Но в основном, когда происходит событие сортировки и текущее значение SortDirection равно NULL, я устанавливаю его в значение Ascending, чтобы сортировщик по умолчанию обратил SortDirection в нисходящее, и это происходит только при первой сортировке, поскольку это единственный раз, когда SortDirection имеет значение NULL.

myGrid.Sorting += (s, e) => e.Column.SortDirection = e.Column.SortDirection ?? ListSortDirection.Ascending;
 16 нояб. 2015 г., 22:44
Почему мы не можем просто сказать: «e.Column.SortDirection = ListSortDirection.Ascending & quot; ?
 28 нояб. 2015 г., 00:38
о ... я вижу это сейчас ... я думаю, что я неправильно прочитал твой код, когда впервые увидел его.
 Jon Erickson27 нояб. 2015 г., 22:42
@ Джо, эй, это потому, что я хочу установить его только в ListSortDirection. По возрастанию, если значение никогда не устанавливалось ранее (SortDirection == null) ... в основном, трюк - это первый раз, когда вы нажимаете направление сортировки, это вызовет это событие Вы устанавливаете текущее нулевое значение SortDirection на Ascending, чтобы сетка увидела, что он в данный момент Ascending, а затем переключает его на Descending ...

писи):

private void _myGrid_Sorting(object sender, DataGridSortingEventArgs e)
{
    if (e.Column.SortDirection == null)
        e.Column.SortDirection = ListSortDirection.Ascending;
}

а затем программно измените порядок сортировки, если он не равен "none".

Проверьте эту ссылку для того, как это выглядит в WinForms: DataGridViewColumn начальное направление сортировки

http://blogs.msdn.com/b/vinsibal/archive/2008/08/29/wpf-datagrid-tri-state-sorting-sample.aspx

В приведенном выше блоге они используют еще одно состояние сортировки в DataGrid.

Ваш ответ на вопрос