[英]Setting datagrid cell background colour wpf
我有一个DataGrid
其单元格背景色必须为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}">
谁能解释为什么?
之所以会这样,是因为DataGridCell
的Content
是一个TextBlock
(或在单元格编辑时是一个TextBox
)。 因此,即使是一个空单元格也包含一个空的TextBlock
( TextBox
),即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.