wpf - 包含逗号作为绑定(bind)路径的字典字符串键

标签 wpf

我正在以编程方式为 DataGridColumn 进行绑定(bind),例如:

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

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

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

最佳答案

传递给 Binding 的路径用于构造 PropertyPath 对象。该对象将逗号 (,) 视为特殊字符。您需要通过在逗号前面放置一个插入符号 (^) 字符来对其进行转义。因此,您的路径变量应如下所示:

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

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

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

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

关于wpf - 包含逗号作为绑定(bind)路径的字典字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432446/

相关文章:

wpf - 用于输入/输出调整的免费 WPF Graph 控件

c# - RoutedUICommand PreviewExecuted Bug?

wpf - 绑定(bind)和异步操作

c# - WPF - 声明自定义路由事件并监听它

wpf - 文本框不会拉伸(stretch)以填充 View 框

wpf - 处理静态资源 ViewModel

c# - Backgroundworker RunWorkerCompleted 事件甚至在完成工作之前就已触发

c# - WPF XAML 字符串格式日期时间 : Output in wrong culture?

c# - 如何从 WPF PolyLine 对象移动所有坐标?

c# - 在 WPF 中打开 ContextMenu 时保留 DataGrid IsSelectionActive?