2

我在向 DataGrid 添加名为“[name] version”的列时遇到问题。如果我有类似“[name]”或“version [name]”的东西,那么转义、unicode 或加倍所有工作。只有在右括号后有字符时才会出现问题。“[[name] version]”也可以,但不是我需要的。

我正在使用 WPF 和 C#,这行代码将 DataTable 绑定到 DataGrid。

datagrid1.ItemsSource = dataTable1.DefaultView;

我收到的错误是:

“PropertyPath 'Binding.Path '[name]' ... 'version'”中的语法错误,'”中的语法错误。

4

3 回答 3

0

SQL Server 允许在列名周围使用方括号或双引号...您可以使用双引号代替吗?

于 2011-05-23T15:21:45.120 回答
0

我刚刚编写了一个辅助函数,它更改 ColumnName 属性以删除 [] 和空格等特殊字符,我只是将这些字符留在 Caption 属性中。然后我将 Caption 绑定到列标题,将 ColumnName 绑定到 DisplayMemberBinding。

于 2013-06-01T06:41:31.617 回答
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);
于 2016-02-16T09:17:02.100 回答