繁体   English   中英

设置DataGrid单元格背景色WPF

[英]Setting datagrid cell background colour wpf

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

  1. 灰色,如果该单元格没有值
  2. 白色(默认),如果单元格具有任何值

我写了下面的代码来实现此功能,但是它不起作用。

<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}">

谁能解释为什么?

之所以会这样,是因为DataGridCellContent是一个TextBlock (或在单元格编辑时是一个TextBox )。 因此,即使是一个空单元格也包含一个空的TextBlockTextBox ),即HasContent属性永远不会变为false

如果您不对单元格使用自定义模板,则此方法应该起作用:

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Content.Text, RelativeSource={RelativeSource Self}}"  Value="" >
            <Setter Property="Background" Value="Gray"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM