C1CollectionView では、GroupDescriptions プロパティを使用してコレクションを特定のプロパティでグループ化できます。
たとえば、コレクションを "Country" プロパティでグループ化するには次のようにします。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Dim list = New System.Collections.ObjectModel.ObservableCollection(Of Customer)() ' リストから C1CollectionView を作成します _view = New C1.Xaml.C1CollectionView(list) ' 顧客を国別にグループ化します _view.GroupDescriptions.Add(New C1.Xaml.PropertyGroupDescription("Country")) |
C#コードの書き方
C# |
コードのコピー
|
---|---|
var list = new System.Collections.ObjectModel.ObservableCollection<Customer>(); // リストから C1CollectionView を作成します _view = new C1.Xaml.C1CollectionView(list); // 顧客を国別にグループ化します _view.GroupDescriptions.Add(new C1.Xaml.PropertyGroupDescription("Country")); |
メモ: コレクションが INotifyCollectionChanged を実装している場合は、グループ化の設定後であっても、データに加えられた変更がすべてグループ化に適用されます。
C1FlexGrid コントロールは、C1CollectionView に基づくグループ化をサポートします。他のコントロールを使用してグループ化を行う場合は、各グループの外観を制御する GroupStyle を定義する必要があります。
次に、標準の ListBox コントロールに対して定義された GroupStyle の例を示します。
コードのコピー
|
|
---|---|
<ListBox Name="_listBox" ItemsSource="{Binding Customers}"> <ListBox.GroupStyle> <GroupStyle> <GroupStyle.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </GroupStyle.HeaderTemplate> </GroupStyle> </ListBox.GroupStyle> </ListBox> |