Как включить сортировку в сетке данных Silverlight с группировкой? - PullRequest
0 голосов
/ 01 декабря 2011

Я не могу найти способ указать, что он сортирует сначала по имени группы, а затем по столбцу. Я использую DataGrid.

РЕДАКТИРОВАТЬ: Моя ошибка, я использую DataGrid, а не Grid.

1 Ответ

2 голосов
/ 01 декабря 2011

Grid - это не элемент управления данными (например, DataGrid), поэтому, кроме ручной сортировки и последующего добавления других элементов один за другим, действительно нет чистого способа сделать это.

Вы должны думать о Grid как о версии XAML тега HTML Table.

РЕДАКТИРОВАТЬ (OP изменен с Grid на DataGrid, добавив следующее):

Встроена поддержка сортировки DataGrid для сортировки любой коллекции, которая реализует интерфейс IList. Если вы используете AutoGenerateColumns, это все, что нужно. Но это не то, что вы хотите сделать.

Похоже, вы пытаетесь сделать это программно. Что вам нужно сделать, это установить SortMemberPath столбца. Если вы создаете столбцы вручную, это просто свойство столбца. Если вы используете автогенерацию, вы можете сделать это в событии AutoGeneratingColumn.

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

Помните, что это всего лишь общие инструкции по сортировке в DataGrid. Для более сложной сортировки, о которой вы спрашиваете, вам нужно отсортировать используемый вами источник данных, то есть коллекцию, к которой вы привязываете сетку.

Что я не уверен, так это то, что вы подразумеваете под «сначала названием группы, а затем колонкой». Вы имеете в виду имя группы в качестве сортировки по умолчанию, а затем сортировку столбцов, если пользователь желает? Если это так, эти инструкции должны помочь. Если нет, я не уверен, что вы имеете в виду.

...