【问题标题】:WPF Binding with StringFormatWPF 与 StringFormat 绑定
【发布时间】:2011-08-17 21:10:07
【问题描述】:

谁能向我解释为什么这不会呈现“VALUE IS DEFAULT”?

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

我缺少这种语法有些棘手的地方。提前谢谢你。

【问题讨论】:

    标签: wpf binding string-formatting


    【解决方案1】:

    WPF 中的绑定不考虑 StringFormat 而回退到 FallbackValue 以防万一失败。

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

    --编辑--

    这应该可行:

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

    【讨论】:

      【解决方案2】:

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

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

      ?

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 你的意思是如果使用了 FallbackBinding 则不是 StringFormat 吗?
        • 是的,我已经验证 StringFormat 在 FallbackValue 时被忽略
        猜你喜欢
        • 2011-03-26
        • 2011-03-11
        • 2010-12-29
        • 2017-02-16
        • 2011-05-28
        • 2013-03-12
        • 1970-01-01
        • 2010-09-16
        • 2018-08-13
        相关资源
        最近更新 更多