我正在尝试创建TreeView
,允许类型为textBlock
和comboBox
的子节点。这是一张这样的图片:
我认为这是一个可以通过使用HierarchicalDataTemplate
来解决的问题,因为xaml是我将指定我使用的UI控件的代码区域。到目前为止,我尝试使用我的StackPanel
实现HierarchicalDataTemplate
,如此:
<HierarchicalDataTemplate DataType="{x:Type data:DataModel}" ItemsSource="{Binding Children}">
<StackPanel>
<TextBlock Text="{Binding DisplayName}" />
<ComboBox ItemsSource="{Binding CommandCollection}" />
</StackPanel>
</HierarchicalDataTemplate>
但是我没有用这个来实现正确的解决方案,因为StackPanel
基本上是设置每个节点,因此它们包含textBlock
和comboBox
。这是一个问题,因为每个子节点都是textBlock
或comboBox
,而不是两者。如何设置允许HierarchicalDataTemplate
子节点为TreeView
或textBlocks
的{{1}}?如果您想了解我的comboBoxes
如何实施或想要查看更多代码的详细信息,请与我们联系。
答案 0 :(得分:0)
通常,使用相应的数据模板模拟不同类型的数据是个好主意。这可以通过将模板放在TreeView.Resources
并使用DataTemplate.DataType
属性来隐式实现。
以下是一个示例:[Link]
唯一不同的是,您将使用分层模板并将模板的ItemsSource
分别绑定到包含子项的属性。