【问题标题】:Concat data binding and static text in C#C# 中的 Concat 数据绑定和静态文本
【发布时间】:2015-07-27 19:03:18
【问题描述】:

所以我有一个带有数据绑定的文本框,但我想在我的 xaml 代码中添加静态文本。

<TextBlock Text="{Binding Preptime}"></TextBlock>

这只会显示分钟数,我希望它显示为:“准备时间:55分钟”

        public String Preparation
    {
        get { return "Preparation time: " + Preptime + " minutes"; }
    }

我知道我可以为此使用 getter,这将是一个干净的解决方案,但必须有一种方法可以将它直接写入我的 xaml?

提前致谢!

【问题讨论】:

    标签: c# data-binding


    【解决方案1】:

    在绑定上使用属性StringFormat

    <TextBlock Text="{Binding Preptime, StringFormat=Preparation time: {0} minutes}"></TextBlock>
    

    它的行为与String.Format相同

    【讨论】:

    • 恐怕这不受支持,我收到错误消息:“在类型 'Binding' 中找不到属性 'StringFormat'”。您可以创建一个自定义转换器,但请看下面我的答案,它可以工作并且非常干净。
    【解决方案2】:

    您可以直接在 TextBlock 的 Text 属性上使用 StringFormat,就像您在 .cs 中使用 string.format 一样

    【讨论】:

      【解决方案3】:

      经过一些额外的搜索,我发现使用运行可能是最简单的解决方案。更多信息在这里:Windows Phone 8.1 XAML StringFormat

                      <TextBlock>
                      <Run Text="Preparation time: "></Run>
                      <Run Text="{Binding Preptime}"></Run>
                      <Run Text=" minutes."></Run>
                  </TextBlock>
      

      【讨论】:

      • 如果您正在使用 Windows Phone 或 Windows App Store 应用程序,请下次添加该标签。它不支持桌面应用程序的所有功能。
      猜你喜欢
      • 2012-05-29
      • 2021-06-20
      • 2013-03-02
      • 2016-04-09
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多