如何在WPF绑定路径中转义斜杠字符,或者如何解决?

Aar*_*ide 9 data-binding wpf autogeneratecolumn

我只是在学习WPF,并且我将一个数据源表格放到一个窗口上,该窗口为每列生成XAML.

其中一些列的名称导致以下内容:

<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=Rev/Unit}" Header="Rev/Unit" Width="SizeToHeader" />
Run Code Online (Sandbox Code Playgroud)

这会导致列空白(像我一样).

H.B*_*.B. 6

在MSDN上有一篇关于属性路径文章,其中有一个关于转义字符的部分:

在索引器([])内,插入符(^)转义下一个字符.

您必须转义(使用XML实体)某些特定于XML语言定义的字符.使用&来转义字符"&".使用>转义结束标记">".

您必须转义(使用反斜杠\)字符,这些字符是WPF XAML解析器行为特有的,用于处理标记扩展.

  • 反斜杠(\)是转义字符本身.
  • 等号(=)将属性名称与属性值分隔开.
  • 逗号(,)分隔属性.
  • 右花括号(})是标记扩展的结尾.

这里没有列出斜杠,所以我不知道反斜杠转义是否有效,但你可以试试.

(你究竟是怎么拥有这样的属性名称?在XML和C#中似乎都是非法的)


Aar*_*ide 6

我(有点随意)尝试过:

<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=[Rev/Unit]}" Header="Rev/Unit" Width="SizeToHeader" />
Run Code Online (Sandbox Code Playgroud)

结果是一切按照我的预期运作.再看一遍,我猜HB的MSDN引用告诉我这个.当我读到(最初在我发布这个问题之前在MSDN上,然后再来这里)我只是不明白什么" 内部索引器--comma--插入字符(^)逃脱下一个字符 "的意思.