概要

WPF の XamDataGrid コントロールで GroupBy によるグループ化を行った際に、グループ行を折りたたんだ状態でも Summary(集計行)を表示する方法 について説明します。FieldLayoutSettings の GroupBySummaryDisplayMode プロパティを使用することで実現できます。

対象コントロール

  • Infragistics WPF — XamDataGrid

問題

XamDataGrid で GroupBy によりデータをグループ化した場合、既定の設定ではグループ行を展開しないと Summary(集計行)が確認できません。グループ行を折りたたんだ状態でも、各グループの集計値を表示したいケースがあります。

解説

GroupBySummaryDisplayMode プロパティを設定する

FieldLayoutSettings の GroupBySummaryDisplayMode プロパティを SummaryCellsAlwaysBelowDescription に設定することで、グループ行の説明テキストの下に、各フィールドの列位置に揃ったセル形式で Summary が表示されるようになります。

GroupBySummaryDisplayMode の主な設定値は以下のとおりです。

設定値説明
Default(Text)既定の動作。集計値がグループ行の説明にプレーンテキストとして付加されます。各集計は列名に続けて値が表示され、複数の集計はカンマで区切られます。
SummaryCellsAlwaysBelowDescription各集計が、対応するフィールドの列位置に揃ったセルとして、グループ行の説明の下に表示されます。

手順は以下のとおりです。

  1. FieldLayoutSettings に GroupBySummaryDisplayMode=”SummaryCellsAlwaysBelowDescription” を設定する
  2. FieldLayout.SummaryDefinitions に表示したい集計(Count、Sum など)を定義する
  3. FieldSettings の SummaryDisplayArea プロパティは 設定しない(設定するとグリッド下部の固定 Summary 行の動作になるため)

サンプルコード

XAML

<igDP:XamDataGrid.FieldLayoutSettings>
    <igDP:FieldLayoutSettings
        GroupBySummaryDisplayMode="SummaryCellsAlwaysBelowDescription" 👈
        ... />
</igDP:XamDataGrid.FieldLayoutSettings>

...

<igDP:FieldLayout.SummaryDefinitions>
    <igDP:SummaryDefinition SourceFieldName="MGC_PRODUCT_NAME"
                            Calculator="Count"
                            StringFormat="合計"/>
    <igDP:SummaryDefinition SourceFieldName="AVAILABLE_AREA"
                            Calculator="Sum"
                            StringFormat="{}{0:#,###,##0}"/>
</igDP:FieldLayout.SummaryDefinitions>

まとめ

プロパティコード説明
GroupBySummaryDisplayModeGroupBySummaryDisplayMode = “SummaryCellsAlwaysBelowDescription”FieldLayoutSettings に設定することで、グループ行の説明の下に集計セルが表示される。
Tagged:

製品について

Ultimate UI for WPF