我对WPF很新。 我做一张桌子时有一个非常奇怪的问题, 这是我的代码:
DataTable table = new DataTable();
table.Columns.Add("request/sec", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["request/sec", "na");
但它只显示一个列名称为" request / sec"和一个空行
然而,如果我这样做:
DataTable table = new DataTable();
table.Columns.Add("test(request/sec)", typeof(string));
DataRow newRow = dataTable.NewRow();
newRow["test(request/sec)", "na");
然后它正常工作,它正确显示列名称,以及值为&#34的行; na"
我不知道为什么会这样,我知道这听起来很荒谬。 有人可以帮忙吗?
注意:我也试过" //"," /"," \ /",@ 我不能硬编码列名,它是由某些逻辑生成的动态,我使用上面的代码作为例子
答案 0 :(得分:1)
当属性名称包含一些保留字符(如.
和/
)时,存在创建绑定的问题。属性路径解析器只是不处理它们。你有几个选择:
不要让网格自动生成列,而是自己定义它们,对于具有保留字符的列,绑定到数据行的索引器而不是列名:
<DataGridTextColumn Binding="{Binding Path=[request/sec]}" Header="request/sec" />
如果您只关心列名,因为您想要控制列标题文本,只需手动声明列,为列提供“合法”名称,然后像上面一样设置Header
答案 1 :(得分:0)
简而言之,自2010年3月22日起,这声称是一个WPF工具包错误,并且引用了与其他一些角色报告类似问题的故障单。