我有一个DataGridView绑定到DataTable,我使用SQLiteDataAdapter更新一个SQLite数据库。我试图让其中一列成为DataGridViewComboBoxColumn,但尽管我可以在其上放置项目并更改其单元格值,但我无法通过DataAdapter更新它。将DataGridViewColumn更改为绑定DataGridView中的DataGridViewComboBoxColumn
一旦在DataGridView加载我这样做:
DataGridViewComboBoxColumn cbCol = new DataGridViewComboBoxColumn();
dataGridView1.Columns.Insert(2, cbCol);
dataGridView1.Columns[2].HeaderText = dataGridView1.Columns[3].HeaderText;
dataGridView1.Columns[3].Visible = false;
string[] cbList = new[] {"item1","item2"};
foreach (string str in cbList)
{
cbCol.Items.Add(str);
}
for (int i = 0 ; i<= dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.Rows[i].Cells[2].Value = dataGridView1.Rows[i].Cells[3].Value;
}
的问题是,ComboBoxColumn未绑定到DataTable,我要检查的变化和运行的DataAdapter之前修改隐藏列.Update。
有什么办法可以避免这种情况?完美的情况是这样的:
private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
if (columnadded.headertext == "xxx")
{
//Then this is column is the same but in a ComboBox format.
//The ComboBoxColumn, when added, must show the same values and have
//the same binding as if if was the regular column.
}
}
谢谢你,那就是我所需要的。我错过了DataPropertyName! –