设置datagrid单元格背景颜色wpf

时间:2014-10-11 05:34:40

标签: c# wpf datagrid

我有一个DataGrid,其单元格背景颜色必须为2种。

  1. 灰色,如果单元格没有值
  2. 白色(默认),如果单元格有任何值
  3. 我编写了下面的代码来实现此功能,但它无法正常工作。

    <UserControl.Resources>
        <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <Trigger Property="HasContent" Value="False">
                    <Setter Property="Background" Value="Gray"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>
    
    <DataGrid CellStyle="{StaticResource DataGridCellStyle}">
    

    任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:4)

这种情况正在发生,因为Content的{​​{1}}是DataGridCell(或者当单元格正在编辑时为TextBlock)。因此,即使空单元格包含空的TextBoxTextBlock),即TextBox属性也不会变为HasContent

如果您不在单元格中使用自定义模板,这应该可以使用:

false