XamDataGrid の CellValuePresenter スタイルにコンバータ―を設定し、セルの値によって異なる背景色を設定することにより、ヒートマップを表現することが可能です。

以下のように CellValuePresenter スタイルを定義します。
Background プロパティには ColorConverter を設定しています。

<local:ColorConverter x:Key="colorConv"/>
....
<Style TargetType="{x:Type igWPF:CellValuePresenter}">
	<Setter Property="Background" Value="{Binding Value, RelativeSource={RelativeSource Self}, Converter={StaticResource colorConv}, Mode=OneWay}"/>
	<Setter Property="BorderThickness" Value="0,0,1,1" />
	<Style.Triggers>
		<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOverRecord}" Value="True">
			<Setter Property="ForegroundStyle">
				<Setter.Value>
					<Style>
						<Setter Property="TextElement.Foreground" Value="Black"/>
					</Style>
				</Setter.Value>
			</Setter>
		</DataTrigger>
	</Style.Triggers>
</Style>

ColorConverter では、Convert() メソッドで引数よりセルの値を見て異なる Brush を返します。

    public class ColorConverter : IValueConverter
    {
        public object? Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {

            if (value == null) return null;
            int number;

            if (int.TryParse(value.ToString(), out number))
            {
                if (number < 2)
                {
                    return new BrushConverter().ConvertFrom("#64F9C1");
                }
                else if (number < 5)
                {
                    return new BrushConverter().ConvertFrom("#60EEFF");
                }
                else if (number < 8)
                {
                    return new BrushConverter().ConvertFrom("#5D99FF");
                }
                else if (number < 10)
                {
                    return new BrushConverter().ConvertFrom("#A16EFF");
                }

                return new BrushConverter().ConvertFrom("#FF69A3");
            }

            return Brushes.White;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new InvalidOperationException();
        }
    }
Tagged:

製品について

Ultimate UI for WPF