我有一个名为Color的DataGrid。
<DataGridTextColumn Header="Color" Binding="{Binding MyColor.Percentage}"/>
DataGrid的ItemSource是一些带有
MyColor
属性的对象。public class MyColor
{
Color Background { get; set; }
int Percentage { get; set; }
}
设置ItemSource时,列将自动填充
Percentage
的值。现在,我想将此列中每个单元格的背景设置为与MyColor.Color
属性相对应的颜色。有没有办法使用绑定(bind)来做到这一点?就像是Background="{Binding MyColor.Color}"
Color
属性为html格式#XXXXXXXX(是否称为html格式?)。 最佳答案
您可以通过CellStyle
进行设置:
<DataGridTextColumn Header="Color" Binding="{Binding MyColor.Percentage}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{Binding MyColor.Background}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
另外,您还必须将
MyColor
类更改为具有Background
类型的Brush
属性,而不是Color
类型。或者,您可以使用转换器将Color
转换为SolidColorBrush
。