wpf - 突出显示 DataGrid 中的空单元格
问题描述
我正在从数据表中填充数据网格。数据表是在运行时创建的,行数和列数未知。加载数据表时会创建列标题。如果数据表中有一个空单元格,我希望它突出显示。
我在这里看了答案。但它不起作用,它只突出显示单个列中的一个单元格,并且它们绑定到一个列。这是我做不到的。
我的代码:
<DataGrid x:Name="dataGrid" ItemsSource="{Binding DGLines}">
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Background" Value="LightGreen"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
空单元格值实际上为空。我不确定这是否是问题所在。
在任何列中突出显示空单元格的正确样式是什么?
解决方案
您使用的是UserControl
orWindow
吗?如果是 Window 然后使用这个
<Window.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Content.Text, RelativeSource={RelativeSource Self}}" Value="" >
<Setter Property="Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
否则,如果它UserControl
只是替换Window.Resources
为UserControl.Resources
. 我相信已经有人问过类似的答案,但我找不到。
推荐阅读
- android - 蓝牙连接后关闭套接字
- printing - 如何在 SAP Business One 中通过 SDK 打印或打印审阅报告
- asynchronous - 使用 System.Net.Mail 发送电子邮件 - 使用同步方法“Send”有效,但“SendAsync”无效
- javascript - 如何使用邮递员在 webSocket 请求中发送图像
- apache-spark - 在 pyspark 的我的数据框中生成 6 位随机数作为新列
- java - 获取令牌的 AWS Cognito POST 方法
- python - 为什么 replace() 方法不能正常工作但字符串拼接工作
- palantir-foundry - Palantir Foundry 中的 transform 和 transform_df 有什么区别?
- django - 仅在管理员批准后将信息添加到数据库 - Django
- php - Woocommerce 更新销售价格日期仅在我手动更新产品后才有效