Wpf Datagrid在绑定时不显示一列

时间:2014-01-20 05:16:44

标签: 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("S.No");
    _dt.Columns.Add("Name");

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

    dataGrid1.DataContext = _dt;                
}

XAML

<DataGrid AutoGenerateColumns="True"
          Height="131" 
          ItemsSource="{Binding}"
          HorizontalAlignment="Left"              
          Name="dataGrid1" 
          VerticalAlignment="Top" 
          Width="359" />

Output missing Serial Number in DataGrid

2 个答案:

答案 0 :(得分:2)

_dt.Columns.Add("S.No");替换为_dt.Columns.Add("S_No");_dt.Columns.Add("S-No");

答案 1 :(得分:2)

列的名称不能包含点或空格字符,DataBinding不支持сolumn名称中的点。这不是全面的,不仅仅是在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;