textBlock
및 comboBox
의 자식 노드를 허용하는 TreeView
을 만들려고합니다. 다음은이 어떻게 보이는지의 사진입니다HierarchicalDataTemplate을 사용하여 다른 UI 컨트롤의 자식 노드가있는 TreeView 만들기
나는이가 XAML 내가 어떤 UI를 지정합니다 코드의 영역이기 때문에 HierarchicalDataTemplate
를 사용하여 해결할 수있는 문제가 있다고 생각 나는 캠을 사용한다. 지금까지 나는 시도 구현 내 HierarchicalDataTemplate
과 같이있는 StackPanel
:
<HierarchicalDataTemplate DataType="{x:Type data:DataModel}" ItemsSource="{Binding Children}">
<StackPanel>
<TextBlock Text="{Binding DisplayName}" />
<ComboBox ItemsSource="{Binding CommandCollection}" />
</StackPanel>
</HierarchicalDataTemplate>
하지만 그들은 모두 textBlock
과 comboBox
을 포함 할 수 있도록 내가이 StackPanel
때문에 기본적으로 각 노드를 설정하는 것입니다와 올바른 해결책을 달성하지 않습니다. 이는 각 하위 노드가 textBlock
또는 comboBox
이거나 둘 다 아니기 때문에 문제가됩니다. TreeView
자식 노드가 textBlocks
또는 comboBoxes
일 수있는 HierarchicalDataTemplate
을 어떻게 설정합니까? TreeView
이 구현 된 방법에 대한 자세한 내용을 원하거나 더 많은 코드를보고 싶다면 알려 주시기 바랍니다.
이 질문에 대한 배경 참조는 here 및 here입니다.
지금 사용하고있는 데이터 유형은 내 TreeView의 데이터 모델입니다. 나는'TextBlock'이 표시 될 때 보통'string'을 표시하는 반면,'ComboBox'는 대부분 ObservableCollection을 표시한다는 것을 이해합니다. 따라서 데이터 모델 대신 사용할 것이 무엇인지 이해하지 못합니다. –
@Ericafterdark : 사용자 정의 클래스를 사용하십시오. 'StringTreeItem'은 문자열 프로퍼티를 포함 할 것이고,'ComboTreeItem'은 선택된 값을위한 하나의 프로퍼티와 가능한 아이템의리스트를 포함하는 또 다른 프로퍼티를 포함 할 것입니다. 현재 하나의 유형 만있는 경우에는 어떤 기준 으로든 해당 유형을 사용하여 구조를 트리에 매핑해야합니다 (어떤 경우에도 문제가없는 경우). –