WPF数据表中列名不能有斜线/(wpf datatable column name can not

2019-10-21 04:12发布

我很新的WPF。 我有一个很奇怪的问题,只是做一个表,这里是我的代码:

DataTable table = new DataTable();
table.Columns.Add("request/sec", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["request/sec", "na");

但它仅示出了具有“请求/秒”和一个空行的列名

但是,如果我这样做:

DataTable table = new DataTable();
table.Columns.Add("test(request/sec)", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["test(request/sec)", "na");

那么它的工作,它显示了列名称是否正确,并与值“NA”的行

我不知道为什么会这样,我知道这听起来很可笑。 任何人都可以帮忙吗?

注意:我也尝试“//”,“/”,“\ /”,@我不能硬编码的列名,它的动态某些逻辑产生的,我使用上述代码作为例子

Answer 1:

MS WPF论坛-绑定一个WPF的DataGrid的ItemsSource的,其包含列像'01 / 14 / 10'一个DataTable的数据时不显示讨论这个问题。

简言之,这是自称是一个WPF工具包的bug截至2010年3月22日,是指票据报告与其他一些字符类似的问题。



Answer 2:

还有当创建一个属性名称中包含像一些保留字符绑定问题./ 。 属性路径分析器只是不处理它们。 你有几个选择:

  1. 相反,具有电网自动生成列,自己定义他们,并与保留字符列,绑定到数据行的索引,而不是列名:

     <DataGridTextColumn Binding="{Binding Path=[request/sec]}" Header="request/sec" /> 
  2. 如果你只是因为你要控制的列标题文本,只是手动声明列关心的列名,给列一个“合法”的名称,并设置Header就像上面。



文章来源: wpf datatable column name can not have slash /