我只是在學習WPF,我從一個數據源中將一張表格放到一個爲每列生成XAML的窗口中。我如何轉義WPF綁定路徑中的斜線字符,或者如何解決?
其中一些列具有導致以下名稱:
<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=Rev/Unit}" Header="Rev/Unit" Width="SizeToHeader" />
這導致列拿出空白(像我一樣)。
我只是在學習WPF,我從一個數據源中將一張表格放到一個爲每列生成XAML的窗口中。我如何轉義WPF綁定路徑中的斜線字符,或者如何解決?
其中一些列具有導致以下名稱:
<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=Rev/Unit}" Header="Rev/Unit" Width="SizeToHeader" />
這導致列拿出空白(像我一樣)。
在MSDN有一個article on property paths這對轉義字符的部分:
內部索引([]),脫字符(^)逸出的下一個字符。
您必須逃脫(使用XML實體)某些字符是特殊的XML語言定義。使用&來轉義字符「&」。使用>轉義結束標記「>」。
您必須逃脫(用反斜槓\)類的特殊處理標記擴展的WPF XAML分析器行爲特徵。
- 反斜槓(\)是轉義字符本身。
- 等號(=)將屬性名稱與屬性值分開。
- 逗號(,)分隔屬性。
- 右大括號(})是標記擴展的結尾。
斜槓沒有列在這裏,所以我不知道,如果反斜槓轉義的工作,但你可以試試。
(究竟如何你有一個屬性名稱一樣,這似乎是非法無論是在XML和C#?)
它來自sql server視圖中列名的名稱 –
我(種隨機)嘗試:
<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=[Rev/Unit]}" Header="Rev/Unit" Width="SizeToHeader" />
而結果是一切都按照我的預期工作。再看一遍,我想H.B.的MSDN報價告訴我這一點。當我讀了(最初在MSDN之前,我甚至張貼了這個問題,然後再在這裏)我只是不明白什麼是「內部索引--comma--脫字符(^)轉義下一個字符」的意思。
你看過{} http://msdn.microsoft.com/en-us/library/ms744986.aspx – cordialgerm