0

DataGridview에 두 개의 콤보 상자 열이 있는데 첫 번째 항목에서 선택한 항목을 기반으로 두 번째 데이터 소스를 설정하려고합니다.하나의 DataGrid comboboxcolumn에있는 셀의 데이터 소스가 다릅니다.

불행히도, 운이별로 없습니다. 첫 번째 이벤트로 충분하다고 생각하지만 두 이벤트 (CellBeginEdit 및 PopupClosing)를 처리하려고합니다.

이 문제에 대한 이상한 점은 comboboxcolumn 셀에 적절한 멤버 컬렉션을 표시하는 대신 디버깅 중에 생각한이 데이터 그렛 뷰에서 연 마지막 콤보 박스 열의 데이터 소스를 표시 할 수 있다는 것입니다. 콤보 박스 셀의 datasource 속성은 원하는대로 설정됩니다.

switch ((JobType)(Enum.Parse(typeof(JobType), dgvScheduledJobs.Rows[e.RowIndex].Cells[dgvColumnJobType.Index].Value.ToString()))) 
{ 
    case JobType.Upload: 
     { 
      (this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _datasources; 
      break; 
     } 
    case JobType.Extract: 
     { 
      (this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _queries; 
      break; 
     } 
    default: 
     { 
      break; 
     } 
} 

어떤 도움이나 조언은 높게 평가 될 것입니다 :

여기 내 코드입니다.

UPDATE :

죄송합니다 사람. 문제는 DataGridViewComboBoxCol에서 파생 된 클래스를 사용하여 우리가 DataGridViewComboBoxCell에 사용 된 컨트롤을 재정의했기 때문입니다. 그래서 우리가 만든 문제입니다.

일반적으로 위의 방법이 효과가 있다고 생각합니다.

답변

0

이것은 DataGrid의 새로 고침 문제와 같습니다. 소식을 this에서 확인해보세요.

+0

답장을 보내 주셔서 감사합니다. EZSlaver – IgorShch