我想创建一个类似于下面示例的WPF控件。查看链接并查看左侧的导航控件。
这可以在树视图中完成吗?如果是这样,任何想法我会如何开始?
如果不是树视图,那我怎么能达到同样的目的呢?
父节点具有与子节点不同的样式,在某些情况下,父节点将具有子节点,而某些节点将不具有子节点。我不确定如何设计一个能给我相同外观的控件。任何建议都将不胜感激。
谢谢,
答案 0 :(得分:1)
由于您可以根据需要设置树视图的不同节点的样式,答案是肯定的,您可以。您必须将树视图绑定到IEnumerable<A>
,其中A类型的每个对象都有IEnumerable<B>
(可以为空)。
然后,您可以将一种样式应用于A类型的每个元素,将另一种样式应用于B类型的每个元素。在XAML中,在TreeView.Resources中,将两个HierarchicalDataTemplate
放入DataType属性。例如,如果你有一个IEnumerable类别,并且每个Category都有一个属性Items,它是一个IEnumerable of Items,你可以写:
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type core:Category}">
<!--Content here-->
<HierarchicalDataTemplate.ItemsSource>
<Binding Path="ContextAssociations"/>
</HierarchicalDataTemplate.ItemsSource>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type core:Item}">
<!--Content here-->
</HierarchicalDataTemplate>
</TreeView.Resources>