带有Comboboxcolumn的datagrid - AddNew错误

时间:2012-05-16 17:54:34

标签: c# winforms entity-framework datagridview datagridviewcombobox

使用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不是有效值”。请问有什么想法吗?

1 个答案:

答案 0 :(得分:0)

因为你将DataGridViewComboBoxColumn与数据绑定在一起,所以当你添加一个包含一些空值的新行时,你的数据源中找不到它,这就是它提示你不是一个有效值的原因

我的建议是不直接将新记录添加到DataGirdViewComboBox中,而是将您绑定到组合框中的数据源。将DataGridViewComboBox始终从数据源绑定时,最好将其保持为只读。