[英]WPF Textblock TargetNullValue not working?
我有一个wpf文本块,如下所示:
<TextBlock Text="{Binding [someViewModel].SomeVar.SomeSubVar.Name,
TargetNullValue='-'}"/>
在我的viewmodel方面,我将拥有自己的逻辑,最终, SomeVar.SomeSubVar
将为null。
如果我想显示此TextBlock
的默认值,我知道我可以声明并启动SomeVar.SomeSubVar
并将默认值分配给SomeVar.SomeSubVar.Name
但我想使用TargetNullValue
。 我可以知道哪一部分是错的吗?
您可以使用FallbackValue http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue(v=vs.110).aspx与TargetNullValue一起使用。
为了使TargetNullValue起作用,您必须能够将[someViewModel] .SomeVar.SomeSubVar.Name的完整路径评估为null。 如果'someViewModel','SomeVar'或'SomeSubVar'为null,则永远不会评估'Name',并且不会应用TargetNullValue。
如果[somveViewModel].SomeVar.SomeSubVar.Name
属性为null,则Binding's TargetNullValue
属性显示在TextBlock
。 它没有[somveViewModel].SomeVar.SomeSubVar.Name
属性的值。 它有效地设置null和TargetNullValue
属性值之间的等效性。
请参阅此问题以获得更好的解释。
所以我的建议是如果你想要一个非空的默认值,你需要在视图模型中设置它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.