当wpf中绑定值为null或为空时,如何使用触发器/(etc)标记内容集

本文关键字:etc 触发器 何使用 绑定 wpf null | 更新日期: 2023-09-27 18:26:38

我想在运行时动态绑定标签内容。当绑定属性为null或为空时,我希望将绑定值(名称)显示为内容。我尝试了以下操作,但不起作用:当绑定属性具有值时,它可以正常工作。XAML代码如下。

<Label Content="{DynamicResource name}">
    <Label.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding name}" Value="{x:NULL}">
                    <Setter Property="Label.Content" Value="name" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Label.Style>
</Label>

帮帮我。谢谢!

当wpf中绑定值为null或为空时,如何使用触发器/(etc)标记内容集

您可以使用TargetNullValue属性(msdn),而不是使用DataTrigger

获取或设置当的值源为null。

示例:

<Label Content="{Binding LabelContent, TargetNullValue=LabelContent}" />

代码背后的解决方案:

您不必编写触发器。您可以在将值添加到Resources:之前进行检查

...
foreach (var item in resourceList)
{
    if(!string.IsNullOrEmpty(item.Value))   
        window.Resources.Add(item.Key, item.Value);
    else
        window.Resources.Add(item.Key, item.Key);
}
...