问题描述
|
将名为\“ [名称] version \”的列添加到DataGrid时遇到问题。如果我有类似\“ [name] \”或\“ version [name] \”之类的内容,则转义,统一编码或加倍所有工作。仅在右方括号后有字符时才出现问题。 \“ [[[name] version] \”也可以,但是不是我所需要的。
我正在使用WPF和C#,这行代码将DataTable绑定到DataGrid。
datagrid1.ItemsSource = dataTable1.DefaultView;
我收到的错误是:
\“ PropertyPath \'语法中的语法错误
\“ Binding.Path \'[名称] \'中的错误...
\'版\'\”,\'\”。
解决方法
SQL Server允许在列名的周围使用方括号或双引号...您可以改用双引号吗?
,我刚刚编写了一个辅助函数,该函数更改ColumnName属性以删除特殊字符,例如[]和空格,而我只是将这些字符留在Caption属性中。因此,然后将Caption绑定到列标题,将ColumnName绑定到DisplayMemberBinding。
,您需要做的只是逃脱右方括号。
看到:
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);