奇怪的MultiBinding StringFormat问题

9
我有这段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 文本'{1}/{2}'不允许出现在MarkupExtension表达式的'}'之后。第116行第56个位置。”
我该如何解决这个问题?

请检查您是否在 {0} 后面加了一个空格 - V4Vendetta
嗨!我还没有完全掌握。 - NoWar
1个回答

16

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

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

MSDN页面对格式的解释做得特别糟糕。

如果您查看转义序列页面,它解释说在开头有一个左大括号表示标记扩展(例如绑定),而{0}{1}/{2}不是有效的标记扩展。它没有说明它不是第一个字符也可以工作。


我正在尝试找到我的参考资料,但我记得在某个地方读过它。 - Ray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接