WPF Textblock TargetNullValue不起作用?

9

我有一个如下的WPF TextBlock:

<TextBlock Text="{Binding [someViewModel].SomeVar.SomeSubVar.Name, 
                          TargetNullValue='-'}"/>

在我的视图模型中,我将拥有自己的逻辑,在最终SomeVar.SomeSubVar将为null。
如果我想为这个TextBlock显示一个默认值,我知道我可以声明并初始化SomeVar.SomeSubVar并将默认值分配到SomeVar.SomeSubVar.Name中,但我想使用TargetNullValue。请问哪里出了问题?
2个回答

21

4
BindingTargetNullValue 属性,如果 [somveViewModel].SomeVar.SomeSubVar.Name 属性为空,则在 TextBlock 中显示。它不会改变 [somveViewModel].SomeVar.SomeSubVar.Name 属性的值,而是在 null 和 TargetNullValue 属性的值之间建立了一个等价关系。

详见这个问题中的解释。

所以我的建议是,如果你想要一个非空的默认值,需要在视图模型中设置它。


这似乎是发生的事情,但在链接的问题中根本没有解释。实际上,在那个问题上发布了许多令人困惑的答案和评论。 - Tim Pohlmann
我提出了一个关于TargetNullValue的新问题:https://dev59.com/OpXfa4cB1Zd3GeqPi7j- - Tim Pohlmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接