내 프로그램에는 comboBoxes
및 textBlocks
인 자식 노드를 허용하려는 treeView
이 있습니다. My treeView
과 노드는 MVVM 스타일로 만들어집니다. textBlock
자식 노드를 만드는 방법을 알고 있지만 다른 UI 도구의 자식 노드는 만들지 않았습니다.다른 UI 컨트롤의 자식 노드가있는 TreeView를 만드는 방법
내 treeview's
XAML :
TreeView
(TreeViewViewModel)에 추가되는 곳입니다
TreeView ItemsSource="{Binding UserControl_DataModel.TreeViewViewModel.ObservableCollection<TreeViewDataModel>}" DisplayMemberPath="DisplayName.Value".../>
:
private TreeViewDataModel createNewNode(string nodeName)
{
var newNode = new TreeViewDataModel()
{
DisplayName = nodeName
};
newNode.Children.Add(new TreeViewDataModel() { DisplayName = nodeName});
return newNode;
}
public void addNewLocNode(string nodeName)
{
TreeObservableCollection.Add(createNewNode(nodeName));
}
가 어떻게 ComboBoxes
있는 자식 노드를 만들려면 어떻게해야합니까 반면, 여전히 아이들에게 textblock
허용합니까? 아이들이 어떤 UI 도구를 사용하는지 지정하는 코드는 보이지 않기 때문에 혼란 스럽습니다. 더 많은 코드가 필요한지 알려주십시오.
(당신이 그것을 참조해야하는 경우이 같은 treeView
에 대한 Previous question.)
업데이트 : 그냥 명확성을 위해,이 내 treeView
노드가 보는 방법입니다
:
다음과 같이 시도해보십시오.
<HierarchicalDataTemplate DataType="{x:Type Data:Node}" ItemsSource="{Binding Teams}">
<StackPanel>
<TextBlock Text="{Binding IndividualProperty}" />
<ComboBox ItemsSource="{Binding CollectionProperty}" />
</StackPanel>
</HierarchicalDataTemplate>
대신이 설정을 얻습니다. 나무의 각 항목은 TextBlock
및 ComboBox
과 같습니다. comboBox
가 textBlock
노드의 아이가 아닌 것을
참고하지만,이 textBlock
노드와 동일한 수준에있는 것처럼 그것은 더 : 어쩌면이 StackPanel
이외의 다른 옵션)입니다.
고맙습니다. 이것은 올바른 방향으로 나를 이끌고있는 것 같습니다. 그러나, 나는 몇 가지 질문을한다. (마지막 예제 인 btw를 사용하고있다. 각 ComboBox는 그 위에'textBlock'이라는 제목이 있어야하기 때문이다.) 이전처럼 'textBlock'을 설정해도 'textBlock'이 전혀 표시되지 않는 것 같습니다. 왜 이런거야? –
어떻게 알 수 있습니까? – Sheridan
'HierarchicalDataTemplate'과 관련이 있다고 생각합니다. 변경하기 전에'TextBlock' 자식이 표시되고 있었기 때문입니다. –