【问题标题】:Formatting multiple bound field in one TextBlock in XAML在 XAML 中的一个 TextBlock 中格式化多个绑定字段
【发布时间】:2011-01-05 00:34:16
【问题描述】:

我有 2 个字段要格式化为 TextBlock,例如:“{0} of {1} hours used”。

目前有:

<TextBlock Text="{Binding HoursEntered}" />
<TextBlock Text=" of " />
<TextBlock Text="{Binding EstimatedHours}"  />
<TextBlock Text=" hours used "  />

正在查看单个字段的 StringFormat,但这似乎仅适用于 WPF,而不适用于 Silverlight:

<TextBlock Text="{Binding Path=HoursEntered, StringFormat='{0} of XX hours used'}"/>

我想使用 MultiBinding,但这在 Silverlight 3 中也不可用?

如何在 Silverlight 3 xaml 中创建具有多个绑定字段的格式字符串?

【问题讨论】:

    标签: silverlight xaml string silverlight-3.0


    【解决方案1】:

    您可以将文本放在绑定源中的只读字符串中

    Public ReadOnly Property HoursUsedMessage() As String
        Get
            Return String.Format("{0} of {1} hours used", _hoursEntered, _estimatedHours)
        End Get
    End Property
    

    只需确保您还在 HoursEntered 和 EstimatedHours 设置器中引发了此属性的属性通知

    【讨论】:

    • 这段代码放在哪里?数据来自 RIA DomainDataSource。这会添加到客户端或服务器代码中吗?
    • 这将是您要绑定到的对象的属性。
    • 对象来自实体框架。如上所述添加了部分类和属性。工作。
    【解决方案2】:

    如果您想要更动态的解决方案,您可以使用转换器。我做了一个小例子,见下面的链接。为简洁起见,我使用了元素绑定,但它适用于任何数据绑定。

    http://pastebin.com/f4465f5ae

    【讨论】:

      【解决方案3】:

      Silverlight 4 更新:您现在可以使用 String.Format 选项。

      <Button Content=”{Binding username, StringFormat=’Log Out of \{0\} Account’}“/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-22
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 2020-01-09
        相关资源
        最近更新 更多