运行应用程序时,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); } } }
按钮1生成列,按钮2添加一列并将序数设置为0,因此它应该在网格中首先显示,按钮3显示列的序数并显示它们应该在DataTable中的方式.