2009-08-18 1 views

ответ

0

Вы можете связать DataGrid с CollectionView, который создан из вашего списка объектов. CollectionView поддерживает группировку. На самом деле это не кодовое решение, но оно очень простое в использовании.

+0

Я знаю, как это можно сделать с точки зрения xaml, в моем случае это не сработает, поскольку я создаю настраиваемый элемент управления, который расширяется до класса DataGrid, чтобы стилизовать и упорядочить необходимые данные и функциональные возможности. – Wizir

+0

'DataGrid' использует' ICollectionView' и 'CollectionView' реализует этот интерфейс. Может быть, вы можете получить вдохновение от взаимодействия между DataGrid и ICollectionView? Вы можете реализовать свое решение, реализовав свой собственный ICollectionView в своей коллекции объектов. –

1

Вам необходимо использовать CollectionView, но базовый тип CollectionView не поддерживает группировку.

Чтобы группирования работать в коде, вам нужно использовать один из derrived типов CollectionView, которые реализует группировки, такие как:

  • ListCollectionView
  • BindingListCollectionView

Вы можете использовать это что-то вроде этого :

ListCollectionView lcv = new ListCollectionView(myCollection); 
lcv.GroupDescriptions.Add(new PropertyGroupDescription("PropertyNameToGroupBy")); 
MyDataGrid.ItemsSource = lcv; 

Обычно, когда вы устанавливаете коллекцию непосредственно в ItemSource, WPF автоматически создаст CollectionView для вас под обложками.

Bea Stollnitz много рассказывает о CollectionViews on her blog, если вы хотите получить дополнительную информацию.

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