2011-01-27 81 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文檔。

也許你最初的格式字符串中正確放置了轉義序列,並且移動的東西導致在錯誤的地方出現一對空的括號?