我可以使用MultiBinding来处理StringFormat:
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1} (hired on {2:MMM dd, yyyy})">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
<Binding Path="HireDate"/>
</MultiBinding>
</TextBlock.Text>
但是单个绑定的正确语法是什么?以下内容不起作用(虽然它似乎与this example的语法相同):
<TextBlock Text="{Binding Path=HiredDate, StringFormat='{MMM dd, yyyy}'}"/>
谢谢马特,我需要的是你的两个答案的组合,这很有效:
<TextBlock Text="{Binding Path=HiredDate,
StringFormat='Hired on {0:MMM dd, yyyy}'}"/>
答案 0 :(得分:10)
您希望在示例中将花括号从格式字符串中删除,因为您没有将它们用作占位符(就像在String.Format()中使用“{0}”一样。) p>
所以:
<TextBlock Text="{Binding Path=HiredDate, StringFormat='MMM dd, yyyy'}"/>
如果要在字符串中的某处引用占位符值,可以通过使用反斜杠转义花括号来实现:
<TextBlock Text="{Binding Path=HiredDate, StringFormat='Hired on \{0\}'}"/>