我有一个名为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
属性对应的颜色。有没有办法使用绑定?像
Background="{Binding MyColor.Color}"
Color
属性是html格式的#XXXXXXXX(它叫做html格式吗?)。
答案 0 :(得分:9)
您可以通过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
。