使用EF 4,C#WinForms和Northwind数据库,我将数据网格绑定到Orders Entity,然后在运行时创建了一个新的Comboboxcolum。
Entities NW;
private void Form1_Load(object sender, EventArgs e)
{
NW = new Entities();
BindingSource1.DataSource = NW.Orders;
DataGridViewComboBoxColumn CboCol = new DataGridViewComboBoxColumn()
{
HeaderText = "Customer",
DataPropertyName = " Customer ID",
DataSource = NW.Customers.Execute(MergeOption.AppendOnly),
ValueMember = "CustomerID",
DisplayMember = "CompanyName"
};
Datagriview1.Columns.Insert(1, CboCol);
}
使用上面的代码,我成功地更改了值并删除了datagridview中的行,但是无法通过单击“+”按钮添加新行(Add New),错误:“datagridviewcombocell不是有效值”。请问有什么想法吗?
答案 0 :(得分:0)
因为你将DataGridViewComboBoxColumn与数据绑定在一起,所以当你添加一个包含一些空值的新行时,你的数据源中找不到它,这就是它提示你不是一个有效值的原因
我的建议是不直接将新记录添加到DataGirdViewComboBox中,而是将您绑定到组合框中的数据源。将DataGridViewComboBox始终从数据源绑定时,最好将其保持为只读。