2009-12-14 5 views
5

안녕하세요. 저는 WPF DataGrid를 사용하고 있으며 ComboBox Column을 작동 시키려고합니다.WPF DataGridComboBoxColumn

그리드를 보면 디스플레이 멤버 경로를 사용하지 않는 것처럼 열이 비어 있습니다. 하지만 일단 열을 클릭하면 콤보 박스가 나타나서 ItemsSource의 모든 항목을 표시하고 적절한 항목을 선택하므로 바인딩이 모두 올바르게 작동하고 심지어 DisplayMemberPath도 알 수 있습니다. 그것은 내가 비어있는 셀을 편집하지 않을 때입니다.

내가 어디에서 물건을 놓쳤는가?

감사합니다, 라울

답변

14

메신저 편집 모드에없는 때 열이 항목 소스없이 캔트 선택한 항목이 항목 소스와 콤보 상자가 없기 때문에이 것을 확신. 편집 모드로 이동하자마자 열이 항목 소스를 가져오고 모든 것이 멋집니다. 그렇게 같은 항목 소스를 지정하여이 문제를 해결할 수 있습니다 : -

<tk:DataGridComboBoxColumn.ElementStyle> 
    <Style TargetType="ComboBox"> 
     <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" /> 
    </Style> 
</tk:DataGridComboBoxColumn.ElementStyle> 

이 다음 편집 요소와 (비 편집) 요소가 같은 ItemsSource을 가지고

+0

이가 얼마나 힘든 믿지 않을 것 발견. 나는 비 편집 모드 상태가 여전히 콤보 박스를 가지고 있다는 것을 알지 못했다. 나는 그것이 단지 텍스트 블록이라고 생각했다. 다시 한번 감사드립니다! – HaxElit

+1

옙 조금 이상합니다. DataGrid의 코드 작업을 통해 몇 가지 유용한 정보를 얻을 수 있습니다. 살펴볼 코드는 DatagridComboColumn의 GenerateElement 함수이며 표시 전용 콤보 상자가 있습니다. 내 프로젝트에 DataGrid 소스를 가져오고 내가 끝나면 바로 dll 참조로 바꿉니다. –

+3

ViewMode에서도 comboBox를 볼 수 있는지 알고 있습니까? 내 사용자에게 ComboBox라는 것을 알리고 싶습니다. – MBen