2011-05-03 98 views
6

嘿家伙,有谁能向我解释为什么这不会呈现“VALUE IS DEFAULT”?WPF与StringFormat绑定

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" /> 

关于这个语法我缺少一些棘手的问题。先谢谢你。

回答

6

在WPF绑定不考虑的StringFormat而回落至FallbackValue在失败的情况下。

您可以用什么莱昂建议或PriorityBinding去。

- 编辑 -

这应该工作:

<TextBlock DataContext="{Binding Fail, FallbackValue=DEFAULT}" Text="{Binding StringFormat=VALUE IS {0}}" /> 
0

默认回退值用于优先绑定,如果您希望为回退值显示“VALUE IS DEFAULT”,请尝试以下操作。

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue='VALUE IS DEFAULT'}" /> 
+0

你的意思是如果FallbackBinding被使用的StringFormat不是? – 2011-05-03 16:47:42

+0

是的,我已经验证了,当使用FallbackValue时,StringFormat被忽略 – 2011-05-03 16:56:17

1

我想这也可以使用TextBlock的内部运行工作:

 <TextBlock> 
      <Run Text="Value is : "/> 
      <Run Text="{Binding Fail,FallbackValue=Default}"/> 
    </TextBlock>