我在向DataGrid添加名为“[name] version”的列时遇到问题。如果我有“[name]”或“version [name]”之类的东西,那么转义,unicode或加倍所有工作。关闭括号后面有字符时似乎只有问题。 “[[name] version]”也有效,但不是我需要的。
我正在使用WPF和C#,这行代码将DataTable绑定到DataGrid。
datagrid1.ItemsSource = dataTable1.DefaultView;
我收到的错误是:
“PropertyPath”语法中的语法错误 “Binding.Path'[name]'中的错误... '版本'”,”'。
答案 0 :(得分:0)
SQL Server允许在列名周围使用方括号或双引号...是否可以使用双引号?
答案 1 :(得分:0)
我刚刚编写了一个帮助函数,它更改了ColumnName属性以删除[]和空格之类的特殊字符,我只是将这些字符留在Caption属性中。然后我将Caption绑定到列标题,将ColumnName绑定到DisplayMemberBinding。
答案 2 :(得分:0)
您需要做的只是逃避结束的方括号。
请参阅:
var ds = new System.Data.DataSet();
var dt = ds.Tables.Add();
dt.Columns.Add("[a[b]c", typeof(decimal));
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Select("[[a[b\\]c]=3").Length.ShouldBe(1);