Содержание
Элемент 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
.