我可以使用TreeView在WPF中创建这个示例的导航控件吗?

时间:2010-07-09 01:31:01

标签: wpf treeview wpf-controls

我想创建一个类似于下面示例的WPF控件。查看链接并查看左侧的导航控件。

这可以在树视图中完成吗?如果是这样,任何想法我会如何开始?

如果不是树视图,那我怎么能达到同样的目的呢?

Navigation example

父节点具有与子节点不同的样式,在某些情况下,父节点将具有子节点,而某些节点将不具有子节点。我不确定如何设计一个能给我相同外观的控件。任何建议都将不胜感激。

谢谢,

1 个答案:

答案 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>