バージョン

Cells、CellValuePresenters、および Cell の仮想化

DataRecord は、 FieldLayout 内の Field ごとに Cell を遅延作成する Cells コレクションを公開します。「遅延作成」は、 Cell オブジェクトがコードまたは XAML でリクエストされるまで作成されないことを意味します。

Note

注: セルは UIElements ではなく、関連付けられたフィールドのデータ ソース内に値をラップする軽量オブジェクトです。対応する CellValuePresenter 要素によって UI に表示されます。

CellValuePresenter 要素は現在表示されているセルを表すためだけに作成されるように仮想化されます (詳細は、 パフォーマンス最適化の概要を参照してください)。ただし、以下の 2 つの事例では、表示してはならないセルに対して CellValuePresenters が作成されます。

  • すべてのフィールドのセルの仮想化をオフにする以下の例のように、CellValuePresenters は対応する Field の FieldSettingsAllowCellVirtualization プロパティが False に設定されるセルに対して常に作成されます。

<igDP:XamDataGrid>
        <igDP:XamDataGrid.FieldSettings>
                <igDP:FieldSettings
                  AllowCellVirtualization="False"/>
        </igDP:XamDataGrid.FieldSettings>
</igDP:XamDataGrid>
  • FieldLayoutSettingsDataRecordSizingMode プロパティが SizedToContentAndFixed のデフォルト値のまま、または SizedToContentAndIndividuallySizable に設定される時 (以下の例の XAML のように)。この事例では、セル エディターの IsExtentBasedOnValue メソッドが呼び出されて、方向に基づいてセルを仮想化できるかどうかを決定します。セル エディターの詳細については、 セル値の編集を参照してください。

<igDP:XamDataGrid>
        <igDP:XamDataGrid.FieldLayoutSettings>
                <igDP:FieldLayoutSettings
                  DataRecordSizingMode="SizedToContentAndIndividuallySizable"/>
        </igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>