C# 如果数据绑定源值为',是否可以使用设置的TargetNullValue更新数据绑定源值;空';?

C# 如果数据绑定源值为',是否可以使用设置的TargetNullValue更新数据绑定源值;空';?,c#,wpf,data-binding,textbox,C#,Wpf,Data Binding,Textbox,只是出于兴趣 如果我有一个带有未初始化字符串(绑定到文本框)的ViewModel,我可以使用TargetNullValue显示默认值。 但是,我想知道如果字符串为null,是否可以使用相同的值来更新它 基本上不是 set { if(value != null) text = value; else value = "defaultstring"; OnPropertyChanged(); } 只需在数据绑定中使用Tar

只是出于兴趣

如果我有一个带有未初始化字符串(绑定到文本框)的ViewModel,我可以使用
TargetNullValue
显示默认值。 但是,我想知道如果字符串为
null
,是否可以使用相同的值来更新它

基本上不是

    set
    {
        if(value != null) text = value;
        else value = "defaultstring";
        OnPropertyChanged();
    }  

只需在数据绑定中使用
TargetNullValue
执行同样的操作

您可以操作getter,数据绑定也可以使用get()

但是,如果要在纯XAML中执行此操作,可以使用DataTrigger:

<TextBlock Text="{Binding MyText}">
   <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock }">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyText}" Value="{x:Null}">
                    <Setter Property="Text" Value="DefaultValue"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>


当然可以,但问题仍然是,如果我可以在xaml/视图中仅使用数据绑定来做同样的事情。这更像是一个反问句;)嗯。。你可以使用ValueConverter…但我想这不是你想要的答案。在这种情况下,答案是否定的,您不能仅以不太方便的方式在纯XAML中执行此操作,如ValueConverter或DataTrigger,如果值为空,则替换文本。我将纯XAML变量添加为
DataTrigger
啊,是的,data trigger…,在这种情况下可能会是一种方法。谢谢如果答案对你有帮助,请将它标记为答案,以便其他人也能找到它
<TextBlock Text="{Binding MyText}">
   <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock }">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyText}" Value="{x:Null}">
                    <Setter Property="Text" Value="DefaultValue"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>