Como: Criar TreeViews simples ou complexas
Este exemplo mostra como criar controles TreeView simples ou complexos.
Um TreeView consiste em uma hierarquia de controles TreeViewItem, que podem conter sequências de caracteres de texto simples e também conteúdo mais complexo, como controles Button ou um StackPanel com conteúdo embutido. Você pode definir explicitamente o conteúdo de um TreeView ou uma fonte de dados pode fornecer o conteúdo. Este tópico fornece exemplos desses conceitos.
Exemplo
A propriedade Header do TreeViewItem contém o conteúdo que o TreeView exibe para aquele item. Um TreeViewItem também pode ter controles TreeViewItem como seus elementos filho e você pode definir esses elementos filho usando a propriedade Items.
O exemplo a seguir mostra como definir explicitamente o conteúdo de umTreeViewItem definindo a propriedade Header como uma sequência de caracteres de texto.
<TreeView>
<TreeViewItem Header="Employee1">
<TreeViewItem Header="Jesper"/>
<TreeViewItem Header="Aaberg"/>
<TreeViewItem Header="12345"/>
</TreeViewItem>
<TreeViewItem Header="Employee2">
<TreeViewItem Header="Dominik"/>
<TreeViewItem Header="Paiha"/>
<TreeViewItem Header="98765"/>
</TreeViewItem>
</TreeView>
O exemplo a seguir mostram como definir os elementos filho de um TreeViewItem definindo Items que são controles Button.
<TreeView>
<TreeViewItem Header ="Employee1">
<TreeViewItem.Items>
<Button>Jesper</Button>
<Button>Aaberg</Button>
<Button>12345</Button>
</TreeViewItem.Items>
</TreeViewItem>
<TreeViewItem Header="Employee2">
<TreeViewItem.Items>
<Button>Dominik</Button>
<Button>Paiha</Button>
<Button>98765</Button>
</TreeViewItem.Items>
</TreeViewItem>
</TreeView>
O exemplo a seguir mostra como para criar um TreeView onde um XmlDataProvider fornece o conteúdo TreeViewItem e um HierarchicalDataTemplate define a aparência do conteúdo.
<XmlDataProvider x:Key="myEmployeeData" XPath="/EmployeeData">
<x:XData>
<EmployeeData >
<EmployeeInfo>
<EmployeeInfoData>Employee1</EmployeeInfoData>
<Item Type="FirstName">Jesper</Item>
<Item Type="LastName">Aaberg</Item>
<Item Type="EmployeeNumber">12345</Item>
</EmployeeInfo>
<EmployeeInfo>
<EmployeeInfoData>Employee2</EmployeeInfoData>
<Item Type="FirstName">Dominik</Item>
<Item Type="LastName">Paiha</Item>
<Item Type="EmployeeNumber">98765</Item>
</EmployeeInfo>
</EmployeeData>
</x:XData>
</XmlDataProvider>
<HierarchicalDataTemplate DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=Item}">
<TextBlock Text="{Binding XPath=EmployeeInfoData}" />
</HierarchicalDataTemplate>
<TreeView ItemsSource="{Binding Source={StaticResource myEmployeeData},
XPath=EmployeeInfo}"/>
O exemplo a seguir mostra como criar um TreeView onde o conteúdo do TreeViewItem contém controles DockPanel que têm conteúdo embutido.
<TreeView>
<TreeViewItem Header="Animals">
<TreeViewItem.Items>
<DockPanel>
<Image Source="data\fish.png"/>
<TextBlock Margin="5" Foreground="Brown"
FontSize="12">Fish</TextBlock>
</DockPanel>
<DockPanel>
<Image Source="data\dog.png"/>
<TextBlock Margin="5" Foreground="Brown"
FontSize="12">Dog</TextBlock>
</DockPanel>
<DockPanel>
<Image Source="data\cat.png"/>
<TextBlock Margin="5" Foreground="Brown"
FontSize="12">Cat</TextBlock>
</DockPanel>
</TreeViewItem.Items>
</TreeViewItem>
</TreeView>