包含逗号作为绑定路径的字典字符串键

dyt*_*ori 3 wpf

我是以编程方式为DataGridColumn类似的绑定:

var path = "DictObj[" + key_str + "]";
column.Binding = new Binding(path);
Run Code Online (Sandbox Code Playgroud)

它通常工作正常,但是当key_str包含commma时,列中的单元格什么都不显示.我试过(没有太多的考虑)var path = "'...'","\'...\'","{}{...}","'{}...'",或"DictObj[[" + key_str + "]]",但不成功.

因为key_str它也用于显示目的,我不希望它删除它的逗号.任何的想法?

Xav*_*ier 8

传递给a的路径Binding用于构造PropertyPath对象.该对象将逗号(,)视为特殊字符.你需要通过在逗号前放置一个插入符号(^)来逃避它.所以,你的路径var应该是这样的:

var path = "DictObj[" + key_str.Replace(",", "^,") + "]";
Run Code Online (Sandbox Code Playgroud)

根据PropertyPath XAML语法:"内部索引器([]),插入符(^)将转义下一个字符."

注意:从XAML创建类似的绑定实际上需要在逗号前面有两个转义字符(^ \):

{Binding Path=Dict[Some^\,String]}
Run Code Online (Sandbox Code Playgroud)