【发布时间】:2011-08-17 21:10:07
【问题描述】:
谁能向我解释为什么这不会呈现“VALUE IS DEFAULT”?
<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" />
我缺少这种语法有些棘手的地方。提前谢谢你。
【问题讨论】:
标签: wpf binding string-formatting
谁能向我解释为什么这不会呈现“VALUE IS DEFAULT”?
<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" />
我缺少这种语法有些棘手的地方。提前谢谢你。
【问题讨论】:
标签: wpf binding string-formatting
WPF 中的绑定不考虑 StringFormat 而回退到 FallbackValue 以防万一失败。
您可以使用 leon 的建议或使用 PriorityBinding。
--编辑--
这应该可行:
<TextBlock DataContext="{Binding Fail, FallbackValue=DEFAULT}" Text="{Binding StringFormat=VALUE IS {0}}" />
【讨论】:
我认为它也可以使用 TextBlock 内的运行:
<TextBlock>
<Run Text="Value is : "/>
<Run Text="{Binding Fail,FallbackValue=Default}"/>
</TextBlock>
?
【讨论】:
默认后备值用于优先级绑定,如果您想为后备值显示“VALUE IS DEFAULT”,请尝试以下操作。
<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue='VALUE IS DEFAULT'}" />
【讨论】: