要做到這一點,你需要將DataGridView
的AutoGenerateColumns
屬性設置爲false
,自己在列添加到DataSet
和DataGridView
兩者。 DataGridView
列有DataPropertyName
屬性,它允許您設置綁定到基礎DataSource
。
你可以做的是有AutoGenerateColumns
屬性設置爲true,添加數據集作爲數據源的網格(因而得到了大多數你需要的列),然後打開的AutoGenerateColumns關閉,並添加整數和布爾列到數據集和網格。
下面是一些示例代碼,針對一個DataTable綁定:
DataTable dataTable = new DataTable();
DataColumn col1 = new DataColumn("Id",typeof(int));
col1.AutoIncrement = true;
DataColumn col2 = new DataColumn("Name",typeof(string));
DataColumn col3 = new DataColumn("TimeStamp",typeof(DateTime));
dataTable.Columns.AddRange(new DataColumn[] { col1, col2, col3 });
dataTable.Rows.Add(null,"John",DateTime.Now);
dataTable.Rows.Add(null,"Jane",DateTime.Now);
BindingSource source = new BindingSource();
source.DataSource = dataTable;
dataGridView1.DataSource = source;
dataGridView1.AutoGenerateColumns = false;
DataColumn col4 = new DataColumn("CheckCol", typeof(bool));
dataTable.Columns.Add(col4);
DataGridViewCheckBoxColumn dgvcol1 = new DataGridViewCheckBoxColumn();
dgvcol1.DataPropertyName = "CheckCol";
dgvcol1.Name = "Select";
dataGridView1.Columns.Add(dgvcol1);
我還沒有實現的NumericUpDown列類型,但它應該工作得一樣顯示的複選框列類型。