奇怪的MultiBinding StringFormat问题

时间:2012-01-25 11:31:05

标签: wpf xaml

我有这个XAML

<MultiBinding  StringFormat=" {0}{1}/{2}">
   <Binding Path="Text" ElementName="tbxAuthHost" />
   <Binding Path="Text" ElementName="tbxAuthWebsiteName" />
   <Binding Path="Text" ElementName="tbxAuthServicesAddress" />
</MultiBinding>

当我尝试将“{0} {1} / {2}”更改为“{0} {1} / {2}”,因此没有前导空格,然后Visual Studio会出现此错误:

错误3在MarkupExtension表达式的结束'}'之后,不允许使用文本“{1} / {2}”。第116行第56位。

我如何解决这个问题?

enter image description here

1 个答案:

答案 0 :(得分:16)

您可以通过将{}放在字符串格式的前面来解决此问题。

StringFormat="{}{0}{1}/{2}"

MSDN Page在解释格式方面做得特别糟糕。

如果查看escape sequence上的页面,它会解释开头的左括号表示标记扩展名(例如Binding),而{0}{1}/{2}不是有效的标记扩展名。它没有解释没有它,因为第一个角色也有效。