XamDataGridでセルの値に応じてセルの色を変えてみましょう。 完成イメージはこんな感じになります。

手順
1. CellValuePresenterのBackgroundプロパティにIValueConverterのインスタンスをバインドする。
CellValuePresenterをターゲットとするStyleのインスタンスをResourcesに追加し、BackgroundプロパティをCellValuePresenter自身のセルの値にバインドします。
さらに、値から色を返すIValueConverter(※手順2でコーディングします)を指定します。
Resourcesに追加したStyleと XamDataGridとの紐づけは、FieldのCellValuePresenterStyleプロパティで行います。
<Window.Resources>
<!-- IValueConverter(※実体は手順2でコーディングします) -->
<local:ScoreToBrushConverter1 x:Key="scoreToBrushConverter1"/>
<!-- CellValuePresenterのStyle -->
<Style TargetType="{x:Type igDP:CellValuePresenter}" x:Key="myCellStyle1">
<Setter Property="Background" Value="{Binding Value, RelativeSource={RelativeSource Self}, Converter={StaticResource scoreToBrushConverter1}, Mode=OneWay}"/>
</Style>
</Window.Resources>
...
<igDP:XamDataGrid>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Fields>
...
<!-- CellValuePresenterStyleにResourcesのStyleを指定する。 -->
<igDP:Field Name="Math" Label="数学" CellValuePresenterStyle="{StaticResource myCellStyle1}"/>
...
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
2. IValueConverterの実体を作成する。
値から色を返すIValueConverterをコーディングします。
public class ScoreToBrushConverter1 : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value != null)
{
// 渡されてきたvalueを整数値に変換する。
int score = (int)value;
// 値が40未満なら、ピンク色を返す
if (score < 40) return new SolidColorBrush(Colors.Pink);
// それ以外なら、白を返す
else return new SolidColorBrush(Colors.White);
}
return Binding.DoNothing;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
以上で完成です。
もし行全体の色を変えたい場合は、「XamDataGrid セルの値に応じて行全体の色を変える」をご覧ください。
サンプル