Принудительная вторичная сортировка в DataGrid - PullRequest
0 голосов
/ 08 октября 2018

Существует ли подход для программного применения сортировки WPF DataGrid на основе нескольких свойств?

У меня есть несколько столбцов DataGrid, которые содержат один столбец, который я всегда хочу расположить в алфавитном порядке в пределахгруппировки значений при сортировке других столбцов.

Во всех пользовательских реализациях сортировки, которые я видел, используется IComparer, но это обеспечивает только значения в одном столбце, с которым он связан.

ДляНапример, если у нас есть следующие два столбца несортированных данных:

  • A 1
  • D 2
  • C 2
  • B 1

Если мы применим сортировку ко второму столбцу, первый столбец будет произвольно отсортирован в каждой группе:

  • A 1
  • B 1
  • D 2
  • C 2

То, что я ищу, это для любых групп одинаковых значений во втором столбце, первый столбец в алфавитном порядке:

  • A 1
  • B 1
  • C 2
  • D 2

Есть ли альтернатива IComparer, которая выставляет полную модель?

1 Ответ

0 голосов
/ 09 октября 2018

Вы смотрели в SortMemberPath?

<DataGrid.Columns>
    <DataGridTextColumn Header="Some Caption"  Width="200"
        CanUserSort="True"
        Binding="{Binding SomeDataField}" 
        SortMemberPath="OtherNonShowingField"/>
</DataGrid.Columns>

Так что, если вы выводите данные из списка или из DataTable через его ссылку на DataColumn, вы всегда можете добавить другое поле или столбец с объединенным A +B части в этой области.Поэтому, даже если вы не показываете столбец, его можно использовать как основу для сортировки.

...