2011-10-04 4 views
1

DataGridView에는 4 개의 열이 있으며 그 중 하나는 드롭 다운 (ComboBox) 열입니다. 이 열의 값은 고유해야하므로 지정된 드롭 다운 값을 행에서 선택한 후에는 다른 행의 드롭 다운 목록에서 사용할 수 없게하고 싶습니다. 주어진 값이 선택되지 않은 경우 드롭 다운에 다시 표시되어야합니다. 유사한 예가있는 몇 가지 기사를 찾았습니다 (1, 2, 3). 그러나 이들 모두는 이벤트에 가입하고 ComboBox를 수동으로 채우는 것을 포함합니다.DataGridView의 동적 ComboBox

  • (기본적으로 all.Except(selected) LINQ 쿼리의를 IEnumerable 아마도) 형 데이터 바인딩이 작업을 수행 할 수있는 방법이 있나요?
  • 데이터 바인딩만으로는 충분하지 않다면 내가 찾은 예제보다 더 나은 방법이 있습니까?

내가 개발 그렇게 문제 "그래 ... 그 종류의 작동 것이다"그렇다 좋은 조언을 말하는 데 윈폼에 조금 새로운입니다.

답변

1

난 당신이 지금까지 검색 두려워가 정확한지 - 이벤트 (보통 CellBeginEditCellEndEdit 후 개인 DataGridViewComboBoxCell에 대한 데이터 소스 설정에 가입하는 것보다 같은 DataGridView에 열에서 콤보 상자에 다른 목록을 제공하는 더 좋은 방법은 없습니다).

이 증거로 Microsoft의 DataGridView 프로그램 관리자 인 Mark Rideout이 작성한 우수 DataGridView FAQ을 알려 드리겠습니다. FAQ는 귀하가 게시 한 링크와 매우 흡사 한 귀하의 문제에 대한 완전한 해결책을 가지고 있습니다.

+0

WPF 컨트롤을 사용하면 상황이 나아 졌는지 알 수 없을 것입니다. – R0MANARMY

+1

@ R0MANARMY 특별히 WPF 그리드 중 하나와 연결된 이러한 종류의 체인 된 콤보 상자 소스를 시도한 적이 없지만 일반적으로 WPF는 winforms보다 약간 특이한 작업을 수행 할 때 훨씬 더 좋게 작동합니다. 확실히 고급 WPF 바인딩을 사용하여 특정 컨트롤을 특정 컨트롤에 바인드하여이를 지원할 수 있습니다. –