绑定datagrid单元格背景色

时间:2019-10-15 12:57:41

标签: c# wpf

我正在像这样绑定数据网格单元格背景色,并且绑定正在起作用。

<DataGridTextColumn MinWidth="50" Header="Count" Binding="{Binding ItemCount}" IsReadOnly="True" CanUserSort="False">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="Background" Value="{Binding Color}"/>
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

但是当我这样绑定它时,它会更改文本块的背景颜色,而不是整个单元格。假设我的商品计数超过100,就没有问题。文本块覆盖整个单元格。但是,如果小于100,则可以看到单元格的背景,因为文本块不能覆盖整个单元格。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该使用CellStyle设置单元格的背景:

<DataGridTextColumn MinWidth="50" Header="Count" Binding="{Binding ItemCount}" IsReadOnly="True" CanUserSort="False">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="Background" Value="{Binding Color}"/>
        </Style>
    </DataGridTextColumn.CellStyle>
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>