値に基づいてセル コンテンツのテキスト フォントと色を変更したいのですが、コードから列を追加する必要があります。問題は、セルの値を色付けするのではなく、テーブルに HEX 値が表示されることです。
XAML リソースに追加しました。
<Style x:Key="MyStyle" TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{Binding TextColor}" />
</Style>
次のコード行は、列を初期化します。
DataGridTextColumn column = new DataGridTextColumn();
column.Header = field.name;
column.Binding = new Binding(field.name)
{
Mode = BindingMode.TwoWay,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
Converter = new NameToBrushConverter()
};
column.ElementStyle = this.FindResource("MyStyle") as Style;
dgwDataMain.Columns.Add(column);
私のカスタム関数:
public class NameToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((string)value == "asd") ? Brushes.Red : Brushes.Black;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}