Recursive HierarchicalDataTemplate (WPF)

Toji picture Toji · Nov 22, 2008 · Viewed 8.3k times · Source

I'm not sure how to approach this: I want a TreeView that will display some simple data from a hierarchical data structure. As a basic example (In XML, cause it's easy to type):

<Node text="Root">
    <Node text="Item 1">
        <Node text="Item 1.1" />
    </Node>
    <Node text="Item 2"/>
</Node>

The catch is that this could theoretically nest infinitely deep, so you can't statically define x number of levels and be done with it. Is there a way to define a HierarchicalDataTemplate that can account for this kind of structure?

Answer

Jobi Joy picture Jobi Joy · Nov 22, 2008

HeirarchicalDataTemplate is used exactly to solve this kind of issue. You can just use a simple template like bellow to achieve this.

  <HierarchicalDataTemplate DataType="Node" ItemsSource ="{Binding XPath=*}">
        <TextBlock Text="{Binding XPath=@text}" />
    </HierarchicalDataTemplate>