wpf - WPF Datagrid 按钮数据触发器
问题描述
在 WPF 数据网格上工作。数据网格有一个带有“DateInSource”列的绑定源。“DateInSource”列中的值可以是 NULL 或日期。
如果值是null
我想要红色按钮,按钮上的文字应该是“接收工作”。
如果值不为空,我想要按钮 GREEN 并且按钮上的文字应该是DateInSource
.
我创建了一个样式资源:
<Style TargetType="{x:Type Button}" x:Key="ButtonFormatStyle" >
<Setter Property="Background" Value="Green"/>
<Setter Property="Content" Value="{Binding}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding DateInSource}" Value="X:null" >
<Setter Property="Background" Value="Red" />
<Setter Property="Content" Value="Receive Work" />
</DataTrigger>
</Style.Triggers>
</Style>
我创建了一个按钮:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="BtnDateInSource" Click="ReceiveWork" Content="{Binding DateInSource}" Style="{StaticResource ButtonFormatStyle}"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我的数据触发器似乎没有工作。建议?
解决方案
Value="X:null"
不是有效的空检查。它是与"X:null"
字符串的比较。
改变它Value="{x:Null}"
推荐阅读
- python - 在 Python 库安装中出现错误
- javascript - 根据 WooCommerce 中选择的状态显示或隐藏结帐邮政编码字段
- java - 在系统控制台上找不到 jhipster?
- mysql - 我如何通过查询来适应 MYSQL 中每个月的最后一个业务/工作日?
- arrays - 以下代码的时间复杂度是多少?我很困惑
- arrays - 使用上下文 api 时没有渲染
- node.js - 尝试使用 pm2 启动项目时出现 EADDRINUSE 错误
- javascript - 如何混淆我的 Android 项目资产中的一些 Javascript 文件?
- php - 为每个产品字段添加一个子字段 - Symfony Forms
- java - 我在 java.sql.BatchUpdateException 中遇到错误:ORA-00917:缺少逗号