Я вижу два способа сделать это,
Вы можете создать новое свойство ValueColor
в вашей сущности, которое привязано к этой сетке и возвращает правильный цвет.
Вы можете привязать фон TextBlock с помощью MultiBinding к Value1 и Value2 с помощью конвертера, который возвращает цвет.
Вот пример
создать MultiValueConverter следующим образом
public class ValuesToColorConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
int value1 = (int)values[0];
int value2 = (int)values[1];
return value1 >= value2 ? Brushes.Red : Brushes.Green;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
И используйте этот xaml, чтобы показать цвета
<Window.Resources>
<WpfApplication1:ValuesToColorConverter x:Key="colorConverter" />
</Window.Resources>
<Grid>
<DataGrid ItemsSource="...">
<DataGrid.Columns>
<DataGridTextColumn Width="20" Header="value1" Binding="{Binding value1}" />
<DataGridTextColumn Width="38" Header="value2 " Binding="{Binding value2 }">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Background">
<Setter.Value>
<MultiBinding Converter="{StaticResource colorConverter}">
<Binding Path="value1"/>
<Binding Path="value2"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Кстати, у вас есть и другая ошибка, вы должны добавить GridColumns в коллекцию вместо Grid Content, использовать мой xaml, и он будет работать
Надеюсь, это поможет