如果Binding属性为Null,则在XAML中使用简单消息进行绑定

时间:2019-03-14 20:27:04

标签: wpf xaml

抱歉,标题令人困惑,请随时更改。

可以说我有一个绑定到SomeProperty的文本块。 这个SomeProperty在某个时候会变成null,如果那个SomePropertynull,那么我想创建一个简单的Label,说此属性没有值或某些其他简单的消息。

这是我的示例文本块。

<TextBlock Text="{Binding SomeProperty, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>

如果SomePropertynull,我想创建在其内容中包含简单消息的Label。

是否可以仅使用XAML来实现?

2 个答案:

答案 0 :(得分:2)

您可以尝试Binding中的TargetNullValue property

<TextBlock Text="{Binding SomeProperty, TargetNullValue=This is the message}"/>

答案 1 :(得分:1)

您可以在Label上使用DataTrigger来监视属性的更改,如果属性为null,它将为您更改Label的值。例如,

    <Label >
        <Label.Style>
            <Style TargetType="Label">
                <Setter Property="Content" Value="Default Value" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding SomeProperty}" Value="{x:Null}">
                        <Setter Property="Content" Value="The value is null!" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Label.Style>
    </Label>

   <TextBlock Text="{Binding SomeProperty, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>