Содержание
Элемент TreeView — это наследник ItemsControl, которые представляет список объектов в виде раскрывающегося дерева. Этот элемент управления предоставляет нам собственные свойства SelectedItem, SelectedValue и SelectedValuePath, а также событие SelectedItemChanged схожие по работе со свойствами и событиями класса Selector.
TreeView, не затрагивая вопросы использования свойств и событий родительского класса ItemsControl. Поэтому, прежде, чем приступать к изучению этого материала, ознакомьтесь с этой частью руководства в которой рассмотрены основные моменты по работе со списками элементов в WPF в принципе.Элемент TreeView
Рассмотрим простой пример создания дерева элементов в WPF:
<TreeView>
<TreeViewItem Header="Телефоны" IsExpanded="True">
<TreeViewItem Header="iPhone"/>
<TreeViewItem Header="Samsung" IsExpanded="True">
<TreeViewItem Header="Galaxy"/>
<TreeViewItem Header="Galaxy Note"/>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Ноутбуки" IsExpanded="True">
<TreeViewItem Header="ASUS"/>
<TreeViewItem Header="MacBook"/>
<TreeViewItem Header="Aser"/>
</TreeViewItem>
</TreeView>
Каждый элемент дерева представляется в виде объекта TreeViewItem для которого мы определяем заголовок (свойство Header) и указываем будет ли раскрыт узел дерева, если он содержит дочерние элементы (свойство IsExpanded). В данном случае мы полностью раскрываем дерево и в приложении оно будет выглядеть следующим образом:
Объекты типа TreeViewItem также являются наследниками ItemsControl и могут содержать, в принципе, любые объекты, например:
<TreeView >
<TreeViewItem Header="Телефоны" IsExpanded="True">
<TreeViewItem Header="iPhone">
<StackPanel>
<TextBlock FontSize="14">iPhone 25</TextBlock>
<TextBlock FontSize="10">Последняя модель</TextBlock>
</StackPanel>
</TreeViewItem>
<TreeViewItem Header="Samsung" IsExpanded="True">
<TreeViewItem Header="Galaxy"/>
<TreeViewItem Header="Galaxy Note"/>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Ноутбуки" IsExpanded="True">
<TreeViewItem Header="ASUS"/>
<TreeViewItem Header="MacBook"/>
<TreeViewItem Header="Aser"/>
</TreeViewItem>
</TreeView>
здесь узел с заголовком iPhone содержит произвольный объект — панель StackPanel с двумя текстовыми блоками:
Итого
Элемент TreeView позволяет отобразить список объектов в виде иерархической структуры — дерева. Каждый узел дерева может содержать произвольное количество объектов, вложенных друг в друга. Чтобы программно раскрыть узел TreeView используется свойство IsExpanded объекта TreeViewItem.