WPF绑定与StringFormat

7
有人能解释一下为什么这个代码无法显示“VALUE IS DEFAULT”吗?
<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" />

我对这个语法有些棘手的地方不太清楚。谢谢您提前。

3个回答

7

在WPF中绑定内容时,如果失败了,会回退到,但不会考虑。你可以按照的建议或者使用。

--编辑--

以下代码应该可行:

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

1
我认为也可以使用 TextBlock 中的 runs 来实现这个功能。
     <TextBlock>
             <Run Text="Value is : "/>
             <Run Text="{Binding Fail,FallbackValue=Default}"/>
     </TextBlock>

?


0

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

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

你的意思是如果使用了FallbackBinding,那么StringFormat就不会被使用了吗? - Jerry Nixon
是的,我已经验证了当FallbackValue时StringFormat被忽略。 - Jerry Nixon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接