在XAML中格式化一个TextBlock中的多个绑定字段

时间:2010-01-14 10:19:00

标签: silverlight xaml string silverlight-3.0

我有2个字段,我想格式化为TextBlock,例如:“{0}的{1}小时使用”。

目前有:

<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中使用多个绑定字段创建格式字符串?

3 个答案:

答案 0 :(得分:2)

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

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

确保您还在HoursEntered和EstimatedHours设置器中提升此属性的属性通知

答案 1 :(得分:0)

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

http://pastebin.com/f4465f5ae

答案 2 :(得分:0)

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

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