Я не уверен, что правильно вас понял, но вот так:
Итак, допустим, что «TestResults» содержит значение, о котором вы говорите.В XAML:
<DataGridTextColumn TextBlock.Background={Binding TestResults, Converter={StaticResource makeBrush}} />
Просто чтобы убедиться, что мы находимся на той же странице, вы определяете конвертер в своем XAML следующим образом:
<Window.Resources>
<local:makeBrush x:Key="makeBrush" />
</Window.Resources>
В конвертере makeBrush высделайте это:
public class makeBrush : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int theValueToConvertToColor = (int)value;
if (theValueToConvertToColor > 10 && theValueToConvertToColor <= 20)
{
return Brushes.Red;
}
if (theValueToConvertToColor > 20 && theValueToConvertToColor <= 30)
{
return Brushes.Blue;
}
//More ifs...
else return Brushes.Green;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}
"object value
", который вы получаете в методе Convert
вашего IValueConverter
, фактически является значением "TestResults
"
Примечание: Iна самом деле не проверял его с DataGridTextColumn
, но я думаю, вы поняли и можете внести необходимые корректировки, если потребуется.