Hi, just use style in Xaml. Refer below Xaml code, and style required columns of your datagrid.
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding YourProperty}" ClipboardContentBinding="{x:Null}" Header="Amount">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding YourProperty, Converter={StaticResource NumberToBoolConverter}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
<DataTrigger Binding="{Binding YourProperty, Converter={StaticResource NumberToBoolConverter}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="False">
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
</DataGrid.Columns>
Use this converter,
public class NumberToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
bool ToReturn = false;
int ActualValue = System.Convert.ToInt32(value);
if (ActualValue <= 1)
{
ToReturn = true;
}
else if (ActualValue > 1)
{
ToReturn = false;
}
return ToReturn;
}
catch
{
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new InvalidOperationException("NumberToBooleanConverter can only be used OneWay.");
}
}