インフラジスティックス・ジャパン株式会社のBlog

インフラジスティックス・ジャパン株式会社のチームメンバーが技術トレンド、製品Tips、サポート情報からライセンス、日々の業務から感じることなど、さまざまなトピックについてお伝えするBlogです。

XamDataGrid セルのスタイルを状態に応じて変更

XamDataGrid のセルのスタイルを、行の状態に応じて変更してみます。

XamDataGrid の提供する CellBinding 機能を利用することで簡潔に実装することができます。

Title 列の CellBindings コレクションに、セルの背景色(CellValuePresenter.Foreground)と ViewModel の ForegroundColor プロパティをバインドします。

<igDP:XamDataGrid DataSource="{Binding Tasks}" Grid.Row="1">
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout>
            <igDP:FieldLayout.Fields>
                <igDP:Field Name="ID" Label="ID"/>
                <igDP:Field Name="Title" Label="タスク">
                    <igDP:Field.CellBindings>
                        <igDP:CellBinding Property="Foreground"
                                  Target="CellValuePresenter"
                                  Binding="{Binding Path=DataItem.ForegroundColor}"/>
                    </igDP:Field.CellBindings>
                </igDP:Field>
                ...
            </igDP:FieldLayout.Fields>
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>

 

「完了」列の bool 値が false の行は、「タスク」列のセル文字が赤くスタイルされました。「全て完了!」ボタンをクリックすると、全行の IsCompleted プロパティが true に更新され、全てのタスクの前景色が黒に変わります。

XamDataGrid CellBinding

 

オンラインリソース

セル設定のデータ項目プロパティへのバインド (xamDataGrid)
http://jp.infragistics.com/help/wpf/xamdatagrid-binding-cell-settings-data-item-properties

 

サンプル

サンプルのダウンロード(Infragistics WPF 2016 vol.2 バージョン、C#) 
XamDataGrid_CellBinding_CS.zip

(このサンプルは 16.2.20162.1006 バージョンで作成されました。)