将StringFormat与单个绑定一起使用的正确语法是什么?

时间:2009-06-18 11:30:53

标签: xaml binding

我可以使用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}'}"/>

1 个答案:

答案 0 :(得分:10)

您希望在示例中将花括号从格式字符串中删除,因为您没有将它们用作占位符(就像在String.Format()中使用“{0}”一样。) p>

所以:

<TextBlock Text="{Binding Path=HiredDate, StringFormat='MMM dd, yyyy'}"/>

如果要在字符串中的某处引用占位符值,可以通过使用反斜杠转义花括号来实现:

<TextBlock Text="{Binding Path=HiredDate, StringFormat='Hired on \{0\}'}"/>