C# 如果数据绑定源值为',是否可以使用设置的TargetNullValue更新数据绑定源值;空';?
只是出于兴趣 如果我有一个带有未初始化字符串(绑定到文本框)的ViewModel,我可以使用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
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>