1

使用EF 4,C#WinForms和Northwind數據庫,我將數據網格綁定到訂單實體,然後在運行時我創建了一個新的Comboboxcolum。DataGrid與Combobox列 - AddNew錯誤

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刪除行,但無法通過點擊「+」按鈕添加新行(新增),錯誤:「datagridviewcombocell不是有效值「。請問有什麼想法嗎?

+0

在「+」按鈕的點擊事件上運行什麼代碼?錯誤發生在哪一行? –

+0

databindingNavigator添加按鈕沒有額外的代碼,編譯器沒有指定行號 –

回答

0

因爲你綁定數據DataGridViewComboBoxColumn,所以當你添加新行其中包含一些空值在數據源中是找不到的,這就是爲什麼它提示你是不是一個有效的值

我的建議是不直接將新記錄添加到DataGirdViewComboBox中,而是將數據源綁定到組合框中。當您將DataGridViewComboBox從數據源綁定爲只讀時,始終保持爲只讀是很好的做法。

+0

datagridview在設計時綁定到數據綁定源,並且databindingNavigator1.AddNewItem = bindingNavigatorAddNewItem的屬性,我試圖將DataGridViewComboBox設置爲只讀,結果仍然存在一樣。 –

+0

我試着重做這個更簡單,請看看這個:[http://stackoverflow.com/questions/10657095/comboboxcolumn-created-using-the-designer] –