当应用程序运行时,
以下示例说明了这一点:
DataGridView
绑定到一个DataTable
。后来,我通过编程方式向DataTable
添加更多列,并且这反映在底层数据中 - 即列序号应该如预期所示。但是,DataGridView
没有反映出来。相反,列被附加到最初生成的集合中。以下示例说明了这一点:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public DataTable data = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.DataSource = data;
for (int i = 0; i < 5; i++)
{
this.data.Columns.Add(i.ToString());
}
}
private void button2_Click(object sender, EventArgs e)
{
DataColumn foo = new DataColumn();
this.data.Columns.Add(foo);
foo.SetOrdinal(0);
}
private void button3_Click(object sender, EventArgs e)
{
foreach (DataColumn tmpCol in this.data.Columns)
{
Console.WriteLine("{0} : {1}", tmpCol.ColumnName, tmpCol.Ordinal);
}
}
}
生成列,添加一列并将序号设置为0,因此它应该是网格中的第一列,显示列的序号,并显示它们在DataTable
中的正确顺序。