-
在DataGrid中添加一个DataGridTemplateColumn,用于绑定单元格背景。
-
在DataGridTemplateColumn中使用DataTrigger实现条件绑定单元格背景。
代码示例:
在XAML文件中:
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border Background="{Binding Path=Status, Converter={StaticResource StatusToBrushConverter}}">
<TextBlock Text="{Binding Path=Name}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
在代码文件中:
public class Item
{
public string Name { get; set; }
public bool Status { get; set; }
}
public class StatusToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool status = (bool)value;
if(status)
{
return Brushes.Green;
}
else
{
return Brushes.Red;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}