2011-01-27 78 views
7

我想通过使用Multibinding在我的网格中结合2个字段的信息,多重绑定工作正常,但我有问题,当我尝试开始格式化1字段是日期在这个绑定。WPF多重绑定字符串格式日期

的2场是用户缩写,即EGJ和入场日期希望达到的组合场看起来像“EGJ - 01/01/2011”

下面是我用我现有的XAML是

<tk:DataGridTextColumn.Binding> 
    <MultiBinding StringFormat=" {0} - {}{1:dd/MM/yyyy}"> 
    <Binding Path="UserInitials" /> 
    <Binding Path="EntryDate" /> 
    </MultiBinding> 
</tk:DataGridTextColumn.Binding> 

任何帮助或指针最欣赏

回答

17

看不到树木,不见森林

只需取出空括号解决我的问题。

<tk:DataGridTextColumn.Binding> 
    <MultiBinding StringFormat=" {0} - {1:dd/MM/yyyy}"> 
    <Binding Path="UserInitials" /> 
    <Binding Path="EntryDate" /> 
    </MultiBinding> 
</tk:DataGridTextColumn.Binding> 

感谢大家花时间看看。用左括号{

<tk:DataGridTextColumn.Binding> 
    <MultiBinding StringFormat="{}{0} - {1:dd/MM/yyyy}"> 
    <Binding Path="UserInitials" /> 
    <Binding Path="EntryDate" /> 
    </MultiBinding> 
</tk:DataGridTextColumn.Binding> 

如果StringFormat开始的XAML分析器要求您使用一对逃吧:

+0

MSDN包括一个转换器的例子[链接](http://msdn.microsoft.com/en-us/library/system.windows.data.imultivalueconverter.aspx) – 2011-12-08 14:04:07

4

除非你打算在格式化的值领先的空间,你应该用这个代替结合的大括号{}。否则解析器会感到困惑,因为标记扩展的语法中也使用了大括号。

有关详细信息,请参见{} Escape Sequence/Markup Extension的XAML文档。

也许你最初的格式字符串中正确放置了转义序列,并且移动的东西导致在错误的地方出现一对空的括号?