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

时间:2015-05-25 06:32:20

标签: wpf

我正在以编程方式为DataGridColumn制作绑定,如:

var path = "DictObj[" + key_str + "]";
column.Binding = new Binding(path);

它通常可以正常工作,但当key_str包含commma时,列中的单元格不显示任何内容。我尝试了var path = "'...'""\'...\'""{}{...}""'{}...'""DictObj[[" + key_str + "]]"但没有太多考虑,但是徒劳无功。

由于key_str也用于显示目的,我不希望它删除它的逗号。有什么想法吗?

1 个答案:

答案 0 :(得分:8)

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

var path = "DictObj[" + key_str.Replace(",", "^,") + "]";

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

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

{Binding Path=Dict[Some^\,String]}