DataGrid控件可以根据DataTable自动生成行和列,但是如果列名包括一些特殊字符:'.','\','/','[',']','(',')'的时候,会出现无法显示出数据或者显示DataRowView的情况
原因是这些字符是Xaml里用来标识绑定path和xpath的符号
例如我们会这么用
<DataGridTextColumn Binding="{Binding Path=a.name}" />
就是绑定到a的name属性上
所以当列名存在'.'的时候,就会把‘.’后面的当成‘.’前面的属性,于是就会显示不出来或者显示错了。
解决办法,DataGrid增加处理函数
<DataGrid AutoGeneratingColumn="<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">DataGrid_AutoGeneratingColumn</span>"/>
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
string columnName = e.PropertyName;
if (e.Column is DataGridBoun