このトピックでは、フィールド グループ化機能を使用する方法について説明します。
本トピックの理解を深めるために、以下のトピックを参照することをお勧めします。
このトピックは、以下のセクションで構成されます。
フィールド グループ化機能は、複数のフィールドを共通フィールド グループにグループ化できます。フィールド グループを他フィールド グループの入れ子にできます。フィールド グループ機能は、水平および垂直のレコード方向がサポートされます。
以下のスクリーンショットは、共通フィールド グループ "IDs" に描画された "Order" および "Customer" フィールド、共通フィールド グループ "Dates" に描画された"Ordered" および "Shipped" フィールドを示します。
以下のコード スニペットは、上記フィールド グループ構成の定義の例です。
XAML の場合:
<igDP:XamDataGrid>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldGroup Label="IDs">
<igDP:Field Name="OrderID" Label="Order" Width="55" />
<igDP:Field Name="CustomerID" Label="Customer" Width="75" />
</igDP:FieldGroup>
<igDP:FieldGroup Label="Dates" AllowCollapsing="True">
<igDP:Field Name="OrderDate" Label="Ordered" Width="90" />
<igDP:Field Name="ShippedDate" Label="Shipped" Width="90" />
</igDP:FieldGroup>
<igDP:Field Name="Freight" Label="Shipping Cost" Width="100" />
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
ユーザーは、フィールド グループ ラベル左側の小さなボタンをクリックしてフィールド グループを縮小して展開できます。プログラムによってトピックの後で説明するコマンドやプロパティを使用してフィールド グループを縮小および展開できます。
FieldLayout は以下を公開します。
FieldItems プロパティ - すべてのルート レベル FieldGroup およびルート レベル Field のコレクション。
Fields プロパティ- すべてのフラット化 Field
コレクション。
2 つのコレクションは内部で両方向に同期されます。
以下の表は、フィールド グループ化機能のユーザー相互作用機能を簡単に説明します。
以下の表は、フィールド グループ化機能の構成可能な要素を簡単に説明し、それらを構成するプロパティにマップします。
以下のセクションは、フィールドグループをプログラミングによって縮小および展開する方法をコード例で示します。
以下のコード スニペットは、コマンドを使用してフィールド グループ ("FieldGroup1") の展開/縮小を切り替える方法について説明します。
XAML の場合:
<Button Content="Toggle the field group"
Command="{x:Static igDP:DataPresenterCommands.ToggleFieldGroupIsCollapsed}"
CommandParameter="{Binding ElementName=FieldGroup1}"
CommandTarget="{Binding ElementName=xamDataGrid1}" />
以下のコード例は、 IsCollapsed プロパティを使用してフィールド グループ ("FieldGroup1") を展開または縮小する設定する方法を示します。
XAML の場合:
…
<igDP:FieldGroup x:Name="FieldGroup1">
…
C# の場合:
this.fieldGroup1.IsCollapsed = true;
このセクションでは、フィールド グループ機能と関連するイベントについて説明します。
以下の表は、動作とそれを管理するイベントのマッピングを示します。
フィールド グループのスタイル設定:
暗黙にスタイルをを作成し FieldGroupLabelPresenter
型をターゲットにします。すべてのフィールドグループに影響します。
FieldLayoutSettings
FieldGroupLabelPresenterStyle プロパティにスタイルを設定します。データ プレゼンターのすべてのフィールド グループに影響します。
FieldGroup の LabelPresenterStyle プロパティにスタイルを設定します。フィールド グループに影響します。
以下のコード スニペットは、すべてのフィールド グループにスタイルを適用する方法を示します。
XAML の場合:
<Page
…
xmlns:igDP="http://infragistics.com/DataPresenter"
…>
…
<Page.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type igDP:FieldGroupLabelPresenter}">
<Setter Property="Background" Value="Orange" />
</Style>
</ResourceDictionary>
</Page.Resources>
…
<igDP:XamDataGrid>
…
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldGroup>
…
</igDP:FieldGroup>
<igDP:FieldGroup>
…
</igDP:FieldGroup>
</igDP:FieldGroup>
<igDP:XamDataGrid.FieldLayouts>
…
</igDP:XamDataGrid>
…
</Page>
以下のコード スニペットは、特定のフィールド グループにスタイルを適用する方法を示します。
XAML の場合:
<Page
…
xmlns:igDP="http://infragistics.com/DataPresenter"
…>
…
<Page.Resources>
<ResourceDictionary>
<Style x:Key="BGRed" TargetType="{x:Type igDP:FieldGroupLabelPresenter}">
<Setter Property="Background" Value="Red" />
</Style>
</ResourceDictionary>
</Page.Resources>
…
<igDP:XamDataGrid>
…
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldGroup LabelPresenterStyle="{StaticResource ResourceKey=BGRed">
…
</igDP:FieldGroup>
<igDP:FieldGroup>
…
</igDP:FieldGroup>
</igDP:FieldGroup>
<igDP:XamDataGrid.FieldLayouts>
…
</igDP:XamDataGrid>
…
</Page>
この例ではスタイルは最初のフィールド グループのみに影響します。
このトピックに関連する追加情報については、以下のトピックを参照してください。