使用StringFormat进行WPF绑定

时间:2011-05-03 16:37:28

标签: wpf binding string-formatting

嘿伙计们,有人能解释一下为什么这不会导致“价值是默认的”吗?

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

我遗漏了这种语法有些棘手。提前谢谢。

3 个答案:

答案 0 :(得分:7)

WPF中的绑定不会考虑 StringFormat ,而是在它失败的情况下回退到 FallbackValue

您可以使用建议的 leon 或使用 PriorityBinding

- 编辑 -

这应该有效:

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

答案 1 :(得分:1)

我认为它也可以使用TextBlock中的运行:

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

答案 2 :(得分:0)

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

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