我有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中使用多个绑定字段创建格式字符串?
答案 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)
如果您想要更动态的解决方案,可以使用转换器。我做了一个小例子,请看下面的链接。为简洁起见,我使用了元素绑定,但它适用于任何数据绑定。
答案 2 :(得分:0)
Silverlight 4的更新:您现在可以使用String.Format选项。
<Button Content=”{Binding username, StringFormat=’Log Out of \{0\} Account’}“/>