C# Wpf Datagrid在绑定时不显示一列

C# Wpf Datagrid在绑定时不显示一列,c#,wpf,xaml,datagrid,datatable,C#,Wpf,Xaml,Datagrid,Datatable,尝试在WPF中绑定DataTable时,DataGrid中未显示的第一列值 code private DataTable _dt; public DataTable DataTable { get { return _dt; } set { _dt = value; } } public Controls() { InitializeComponent(); _dt = new DataTable("Table"); _dt.Columns.Add(

尝试在WPF中绑定
DataTable
时,
DataGrid
中未显示的第一列值

code

private DataTable _dt;

public DataTable DataTable
{
    get { return _dt; }
    set { _dt = value; }
}

public Controls()
{
    InitializeComponent();

    _dt = new DataTable("Table");
    _dt.Columns.Add("S.No");
    _dt.Columns.Add("Name");

    for (int i = 1; i <= 10; i++)
    {
        _dt.Rows.Add(""+i, "Name "+ i);
    }

    dataGrid1.DataContext = _dt;                
}

替换
\u dt.列。添加(“序号”)
\u dt.列。添加(“序号”)
列添加(“S-No”)

列名称不能包含点或空格字符,
数据绑定
不支持c列名称中的点。这将不会在所有方面都起作用,不仅仅是在DataGrid
AutoGenerateColumns
中,而是在绑定系统中的任何地方

尝试将
S.No
更改为仅读取
No
,如下代码所示:

_dt = new DataTable("Table");
_dt.Columns.Add("No");
_dt.Columns.Add("Name");

DataRow dr = _dt.NewRow();

for (int i = 1; i <= 10; i++)
{
    _dt.Rows.Add(""+i, "Name "+ i);                
}

dataGrid1.DataContext = _dt;
\u dt=新数据表(“表”);
_dt.列。添加(“否”);
_dt.列。添加(“名称”);
DataRow dr=_dt.NewRow();

对于(int i=1;i您的信息有点错误,DataGrid列名接受点字符-请参阅OP屏幕的简短部分。但问题是列数据绑定。这就是为什么我建议在前面的回答中更改列名。更改您的信息会混淆OP和其他人。@RajaRaja Cholan:是的,点可以在colu的名称中mn,我自己也尝试过,只是WPF数据绑定引擎不支持DataColumn名称中的点。我将编辑我的答案以使其更清楚。谢谢。卓越,我给出+1作为完整的解决方案。:-)这同样适用于使用“/”字符(例如,“日期/时间”不能用作列名。请改用“日期时间”)。
_dt = new DataTable("Table");
_dt.Columns.Add("No");
_dt.Columns.Add("Name");

DataRow dr = _dt.NewRow();

for (int i = 1; i <= 10; i++)
{
    _dt.Rows.Add(""+i, "Name "+ i);                
}

dataGrid1.DataContext = _dt;