C1FlexGrid コントロールでは、C1CollectionView クラスを通してデータのグループ化が行われます。たとえば、顧客リストを含むグリッドでは、C1CollectionView に少しのコードを追加して、顧客を国別にグループ化できます。
C# |
コードのコピー
|
---|---|
C1.Xaml.C1CollectionView view; // 顧客の監視可能なリストを作成します var list = new System.Collections.ObjectModel.ObservableCollection(); for (int i = 0; i < 100; i++) list.Add(new Customer()); // リストから C1CollectionView を作成します view = new C1.Xaml.C1CollectionView(list); // 顧客を国別にグループ化します view.GroupDescriptions.Add(new C1.Xaml.PropertyGroupDescription("Country")); c1FlexGrid1.ItemsSource = view; |
プロジェクトを実行すると、次の図のような FlexGrid が表示されます。
データ項目が国別にグループ化されています。ユーザーは国名の隣にあるアイコンをクリックまたはタップして、国カテゴリを折りたたんだり、展開することができます。また、列名をクリックまたはタップして、データのソートを制御することもできます。
グループ化を変更する場合は、次のコードで列名を変更するだけです。
C# |
コードのコピー
|
---|---|
view.GroupDescriptions.Add(new C1.Xaml.PropertyGroupDescription("Country")); |
顧客の姓でソートする場合は、"Country" を "Last" に変更するだけです。
C# |
コードのコピー
|
---|---|
// 顧客の監視可能なリストを作成します var list = new System.Collections.ObjectModel.ObservableCollection<Customer>(); for (int i = 0; i < 100; i++) list.Add(new Customer()); // リストから C1CollectionView を作成します // (ソート、フィルタリング、およびグループ化をサポートしています) view = new C1.Xaml.C1CollectionView(list); // 顧客を国別にグループ化します view.GroupDescriptions.Add(new C1.Xaml.PropertyGroupDescription("Last")); |
グループ化を変更すると、FlexGrid コントロールは次の図のようになります。