WPF Multibinding字符串格式日期

时间:2011-01-27 15:11:44

标签: wpf xaml

我正在尝试通过使用Multibinding在我的网格中组合2个字段的信息,多绑定工作正常,但是当我尝试开始格式化这个绑定中的日期之一时,我遇到了问题。

这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>   

非常感谢任何帮助或指示

2 个答案:

答案 0 :(得分:19)

看不见树木了

简单地删除空括号就解决了我的问题。

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

感谢所有花时间看的人。

答案 1 :(得分:5)

除非您打算在格式化值中有前导空格,否则应使用此绑定:

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

如果StringFormat以左括号{开头,则XAML解析器要求您使用一对大括号{}来转义它。否则解析器会感到困惑,因为在标记扩展的语法中也使用了大括号。

详细信息可在{} Escape Sequence / Markup Extension的XAML文档中找到。

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