1

EF 4, C# WinForms 및 Northwind 데이터베이스를 사용하여 DataGrid를 Orders Entity에 바인딩 한 다음 런타임에 새로운 Comboboxcolum을 만들었습니다.DataGrid와 Comboboxcolumn - AddNew Error

위의 코드와
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을 결합, 그래서 당신은 당신의 데이터 소스에서 발견되지 않는 일부 null 값을 포함하는 새 행을 추가하고이 메시지를 표시하는 이유는 때

나의 제안은 유효한 값이 아니기 때문에 DataGirdViewComboBox에 직접 새 레코드를 추가하지 않고 콤보 상자에 바인딩하는 데이터 소스를 추가합니다. DataGridViewComboBox를 데이터 소스에서 바인딩 할 때 항상 읽기 전용으로 유지하는 것이 좋습니다.

+0

datagridview는 디자인 타임에 데이터 바인딩 소스에 바인딩되며 databindingNavigator1.AddNewItem = bindingNavigatorAddNewItem의 속성은 DataGridViewComboBox를 읽기 전용으로 설정하여 결과를 남겼습니다. 똑같다. –

+0

이 작업을 다시 시도해 보았습니다. 다음을보십시오. [http://stackoverflow.com/questions/10657095/comboboxcolumn-created-using-the-designer] –

관련 문제