首页 > 解决方案 > 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>

我的数据触发器似乎没有工作。建议?

当前结果

标签: wpfxamlbuttonbindingdatagrid

解决方案


Value="X:null"不是有效的空检查。它是与"X:null"字符串的比较。

改变它Value="{x:Null}"


推荐阅读