Практическое руководство. Создание простых или сложных элементов TreeView
Обновлен: Ноябрь 2007
В этом примере показано создание простых или сложных элементов управления TreeView.
TreeView состоит из иерархии элементов управления TreeViewItem, которые могут содержать простые текстовые строки, а также более сложное содержимое, такое как элементы управления Button или StackPanel с вложенным содержимым. Можно явно определить содержимое TreeView или содержимое может быть предоставлено источником данных. В этом разделе приведены примеры этих понятий.
Пример
Свойство Header для TreeViewItem включает содержимое, которое TreeView отображает для данного элемента. TreeViewItem также может иметь элементы управления TreeViewItem в качестве дочерних элементов, которые можно определить с помощью свойства Items.
В следующем примере показано явное определение содержимого TreeViewItem с помощью задания для свойства Header значения "текстовая строка".
<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>
В следующем примере показано, как определить дочерние элементы для TreeViewItem с помощью определения Items, которые являются элементами управления 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>
В следующем примере показано, как создать TreeView, где XmlDataProvider предоставляет содержимое TreeViewItem и HierarchicalDataTemplate определяет отображение содержимого.
<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}"/>
В следующем примере показано, как создать TreeView, где содержимое TreeViewItem включает элементы управления DockPanel, которые содержат вложенное содержимое.
<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>
См. также
Основные понятия
Обзор элемента управления "TreeView"
Ссылки
Другие ресурсы
Разделы руководства, посвященные элементу управления TreeView