HierarchicalDataTemplate - класс (System.Windows)

Переключение вида:
Без сценариев
Библиотека классов платформы .NET Framework
HierarchicalDataTemplate - класс

Обновлен: Июль 2008

Представляет DataTemplate, поддерживающий HeaderedItemsControl, как TreeViewItem или MenuItem.

Пространство имен:  System.Windows
Сборка:  PresentationFramework (в PresentationFramework.dll)
XMLNS для XAML: http://schemas.microsoft.com/winfx/xaml/presentation
Синтаксис

Язык Visual Basic (Объявление)
Public Class HierarchicalDataTemplate _
	Inherits DataTemplate
Язык Visual Basic (Использование)
Dim instance As HierarchicalDataTemplate
Язык C#
public class HierarchicalDataTemplate : DataTemplate
Язык Visual C++
public ref class HierarchicalDataTemplate : public DataTemplate
Язык J#
public class HierarchicalDataTemplate extends DataTemplate
Язык JScript
public class HierarchicalDataTemplate extends DataTemplate
Использование элемента объекта XAML
<HierarchicalDataTemplate>
  VisualTree
</HierarchicalDataTemplate>
Примеры

В следующем примере ListLeagueList является списком объектов League. Каждый League объект имеет Name и коллекцию объектов Division. Каждый Division имеет Name и коллекцию объектов Team, а каждый Team объект имеет Name.

Язык C#
<Window x:Class="SDKSample.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="HierarchicalDataTemplate Sample"
  xmlns:src="clr-namespace:SDKSample">
  <DockPanel>
    <DockPanel.Resources>
      <src:ListLeagueList x:Key="MyList"/>

      <HierarchicalDataTemplate DataType    = "{x:Type src:League}"
                                ItemsSource = "{Binding Path=Divisions}">
        <TextBlock Text="{Binding Path=Name}"/>
      </HierarchicalDataTemplate>

      <HierarchicalDataTemplate DataType    = "{x:Type src:Division}"
                                ItemsSource = "{Binding Path=Teams}">
        <TextBlock Text="{Binding Path=Name}"/>
      </HierarchicalDataTemplate>

      <DataTemplate DataType="{x:Type src:Team}">
        <TextBlock Text="{Binding Path=Name}"/>
      </DataTemplate>
    </DockPanel.Resources>

    <Menu Name="menu1" DockPanel.Dock="Top" Margin="10,10,10,10">
        <MenuItem Header="My Soccer Leagues"
                  ItemsSource="{Binding Source={StaticResource MyList}}" />
    </Menu>

    <TreeView>
      <TreeViewItem ItemsSource="{Binding Source={StaticResource MyList}}" Header="My Soccer Leagues" />
    </TreeView>

  </DockPanel>
</Window>


Пример показывает, что с помощью HierarchicalDataTemplate можно легко отобразить список данных, которые содержат другие списки. Ниже приведен снимок экрана этого примера.

Снимок экрана примера HierarchicalDataTemplate

Полный пример см. в разделе Пример отображения иерархических данных.

Дополнительный код

Практическое руководство. Создание простых или сложных элементов TreeView В этом примере показано создание простых или сложных элементов управления TreeView.
Инструкция по Использованию SelectedValue, SelectedValuePath и SelectedItem В этом примере показано, как использовать свойства SelectedValue и SelectedValuePath для указания значения для SelectedItem элемента TreeView.
Иерархия наследования

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.FrameworkTemplate
      System.Windows.DataTemplate
        System.Windows.HierarchicalDataTemplate
Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
Платформы

Windows Vista

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.
Сведения о версии

.NET Framework

Поддерживается в версиях: 3.5, 3.0
См. также

Ссылки

Другие ресурсы

Журнал изменений

Дата

Журнал

Причина

Июль 2008

Добавленные новые элементы: свойство AlternationCount, свойство ItemBindingGroup, свойство ItemContainerStyle, свойство ItemContainerStyleSelector, свойство ItemStringFormat.

Изменение функции SP1.