バージョン

セル結合 (xamDataGrid)

トピックの概要

目的

このトピックは、xamDataGrid コントロールのグループ化機能の概要を説明します。ユーザーがグループ データをより読みやすく、よりナビゲートしやすく配置できます。

DataPresenter コントロールにこの機能のために複数のモードおよびプロパティがあります。FieldSettings オブジェクトで構成できます。

前提条件

このトピックを理解するためには、次のトピックを理解しておく必要があります。

トピック 目的

このトピックは、xamDataGrid コントロールとコントロールが構成されるさまざまな要素を紹介します。

グループ化の概要

XamDataGrid コントロールなどの DataPresenter コントロールはオプションに特定の Field の隣の兄弟 DataRecord が同じ値を含むことを検出できます。セルが編集モードにない場合、値が DataRecord の間に表示され、MergedCellPresenter として表現されます。

xamDataGrid MergeCells 01.png

主要な設定の概要

主要な設定の概要表

xamDataGrid は、設定で詳細なユーザー構成が可能です。

設定 説明

セルを結合するかどうか、そしてセル結合の方法を指定する FieldSettings クラス プロパティ。

このプロパティのデフォルト設定は Never です。

2 つの隣接するレコードのセルが結合可能かどうかを決定するためのカスタム エバリュエーターを提供する FieldSettings クラス プロパティ。

このプロパティのデフォルト設定は Never です。

セル値または表示テキストに基づいて結合可能なセルを決定する FieldSettings クラス プロパティ。

このプロパティのデフォルト設定は Never です。

MergedCellMode

セルを結合するかどうか、そしてセル結合の方法を指定するには、MergedCellMode プロパティを MergedCellMode 型の列挙子に設定できます。

Note
注:

セル結合を正しく有効にするには、MergedCellMode プロパティを AlwaysDefaultNever、または OnlyWhenSorted に設定する必要があります。

このプロパティの値に関係なく、セルを結合するには、グリッド ビューまたはツリー ビューの兄弟 DataRecords にあり、セルが垂直方向でレコードの高さに及ぶか、水平方向でレコードの幅に及ぶ必要があります。ツリー ビューのツリー フィールドはセル結合をサポートしません。

MergedCellEvaluator

このプロパティは、IMergedCellEvaluator インターフェイスのカスタム実装を設定できます。このインターフェイスは結合するセルを決定するカスタム ロジックを指定するために使用されます。

MergedCellEvaluationCriteria

セル値または表示テキストに基づいて結合可能なセルを決定するためにこの MergedCellEvaluationCriteria プロパティを MergedCellEvaluationCriteria 型の列挙子に設定できます。

Note
注:

セル結合を正しく有効にするには、MergedCellEvaluationCriteria プロパティを ConvertedDefaultDisplayTextEditAsType、または RawValue に設定する必要があります。

IMergedCellEvaluator iが指定されている場合、このプロパティは無視されます。

コード例

以下のコード例は、すべてのフィールドでセルを結合する方法を示します。

XAML の場合:

<igDP:XamDataPresenter Name="xamDataPresenter1" BindToSampleData="True">
    <igDP:XamDataGrid.FieldSettings>
        <igDP:FieldSettings MergedCellMode="Always" >
        </igDP:FieldSettings>
    </igDP:XamDataGrid.FieldSettings>
</igDP:XamDataPresenter>

C# の場合:

using Infragistics.Windows.DataPresenter;
...
this.xamDataPresenter1.FieldSettings.MergedCellMode = MergedCellMode.Always;
...

Visual Basic の場合:

Imports Infragistics.Windows.DataPresenter
...
Me.xamDataPresenter1.FieldSettings.MergedCellMode = MergedCellMode.Always
...

以下のスクリーンショットは、以上のサンプルの結果です。

xamDataGrid MergeCells 02.png

以下のコード例は、特定のフィールドでセルを結合する方法を示します。

XAML の場合:

<igDP:XamDataGrid DataSource="{Binding}" >
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout Key="layout1">
            <igDP:FieldLayout.Fields>
                <igDP:Field x:Name="department">
                    <igDP:Field.Settings>
                        <igDP:FieldSettings MergedCellMode="Always" >
                        </igDP:FieldSettings>
                    </igDP:Field>
            </igDP:FieldLayout.Fields>
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>

C# の場合:

using Infragistics.Windows.DataPresenter;
...
this.xamDataPresenter1.FieldLayouts["layout1"].Fields["department"].Settings.MergedCellMode = Infragistics.Windows.DataPresenter.MergedCellMode.Always;
...

Visual Basic の場合:

Imports Infragistics.Windows.DataPresenter
...
Me.xamDataPresenter1.FieldLayouts("layout1").Fields("department").Settings.MergedCellMode = Infragistics.Windows.DataPresenter.MergedCellMode.Always
...