2012-01-25 51 views
9

我有这样的XAML奇怪MultiBinding的StringFormat问题

<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}”。 Line 116 Position 56.

我该如何解决这个问题?

enter image description here

+0

检查是否在'{0}'之后有**空格**? – V4Vendetta

+0

嗨!我没有它100% –

回答

15

您可以通过将{}在字符串格式的前解决这个问题。

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

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

如果您查看escape sequence上的页面,则说明开头的大括号表示标记扩展名(例如Binding),{0}{1}/{2}不是有效的标记扩展名。这并不能解释为不是第一个角色也是有效的。

+0

完美!有用!你怎么知道? –

+0

我试图找到我的参考,但我记得在某处阅读它。 – Ray

+1

@DmitryBoyko找到一个来源,更新了答案。 – Ray