グループ化とは、共通の列値を持つ行を 1 つのグループとして表示することで、グリッドデータを階層構造に構成することです。この機能を使用すると、グループを展開したり折りたたむことで、グリッドデータの分析を容易に行うことができます。
FlexGrid のグループ化は、コードまたはユーザー操作から行うことができます。ユーザー操作の場合は、列のコンテキストメニューと FlexGridGroupPanel コントロールを使用します。このトピックでは、これらの方法、およびグループ化に関連するその他の操作について説明します。
FlexGrid は、グリッド内のデータソース項目のグループ化方法を記述するために GroupDescriptions プロパティを提供しています。このプロパティは、IList インタフェース(例:List)を実装する任意のコレクションのインスタンスを値として受け取ります。コレクションの各項目は、グループ化の基準としてプロパティ名を使用してグループ化を記述します。
次のコードは、WinForms FlexGrid でコードを使用してグループ化を適用する方法を示します。
FlexGrid では、C1.Win.C1FlexGrid.GroupPanel アセンブリから提供される C1FlexGridGroupPanel という拡張コントロールを使用して実行時にグループを作成することもできます。
実行時に FlexGrid でグループ化を行えるようにするには、フォームに C1FlexGridGroupPanel コントロールを追加し、それを C1FlexGridGroupPanel クラスの FlexGrid プロパティを使用して、連結先のグリッドと連結します。グリッドがグループパネルコントロールに連結されたら、列をパネルにドラッグアンドドロップして、その列でグリッドをグループ化できます。ドラッグした列をネストして階層を作成するには、複数の列を任意の順序でドラッグします。 また、C1FlexGridGroupPanel クラスの MaxGroups プロパティを使用して、許可される最大グループ数を FlexGrid に設定することもできます。デフォルトでは、作成されたグループはすべて、展開された状態で表示されます。この設定を変更して、デフォルトでグループを折りたたまれた状態で表示するには、AutoExpandAllGroups プロパティを false に設定します。グループパネルコントロールには、どの列もパネルにドロップされていないときに表示する文字列として Text プロパティも用意されています。
FlexGridGroupPanel コントロールを使用して WinForms FlexGrid でグループ化を適用するには、次のコードを使用します。
FlexGrid では、実行時に列操作に関連するアクションをすばやく簡単に実行するために、列コンテキストメニューがサポートされています。このコンテキストメニューのオプションの 1 つに[この列でグループ化]があります。このコンテキストメニューオプションを使用して、実行時に任意の列でグリッドデータをグループ化できます。グループ化が適用されると、グループ化を削除するための[グループ化解除]オプションがメニューに追加されます。列コンテキストメニューを使用するには、C1FlexGrid クラスにある ColumnContextMenuEnabled プロパティを true に設定する必要があります。デフォルトでは、このプロパティは false に設定されています。
FlexGrid のグループ化には、デフォルトの機能のほかにもさまざまなオプションが用意されており、非常に柔軟に要件を満たすことができます。