[英]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.