8

以下のような wpf テキストブロックがあります。

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

ビューモデル側では、最終的にSomeVar.SomeSubVarnull になる独自のロジックを用意します。

これにデフォルト値を表示したい場合は、デフォルト値を宣言して開始し、割り当てるTextBlockことができることを知っていますが、代わりに使用したいと思います。どの部分が間違っているか分かりますか?SomeVar.SomeSubVarSomeVar.SomeSubVar.NameTargetNullValue

4

2 に答える 2

19

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 は適用されません。

于 2014-03-11T03:35:39.363 に答える
4

プロパティが null の場合、プロパティはにBinding's TargetNullValue表示されます。物件の価値を下げません。null とプロパティの値の間の同等性を効果的に設定します。TextBlock[somveViewModel].SomeVar.SomeSubVar.Name[somveViewModel].SomeVar.SomeSubVar.NameTargetNullValue

良い説明については、この質問を参照してください。

したがって、null 以外のデフォルト値が必要な場合は、ビュー モデルで設定する必要があるというのが私のアドバイスです。

于 2014-03-11T03:39:21.787 に答える