TOC

This article is currently in the process of being translated into Russian (~99% done).

The TreeView control:

TreeView introduction

TreeView позволяет отображать древовидную структуру данных, каждый элемент которой представляет ветку в дереве. Каждая ветка может иметь детей, которые, в свою очередь, могут так же иметь детей. Если вы когда-либо использовали Windows Explorer (aka Проводник), Вы уже знаете как выглядит TreeView - это контрол, который показывает текущую структуру папок на компьютере в левой части Проводника.

TreeView WPF в сравнении с WinForms

Если Вам приходилось работать с TreeView в WinForms, вы имеете представление о том, как легко его использовать, но как сложно кастомизировать. В WPF дела обстоят немного наоборот, во всяком случае, новичкам: немного сложно начать работать, но НАМНОГО проще его кастомизировать. Как и остальные WPF контролы, TreeView безлик по дефолту, но его стиль можно кастомизировать практически бесконечно без особых усилий.

Как и в ListView, в TreeView определен свой тип элементов - TreeViewItem, который можно использовать, чтобы заполнить TreeView. Если вы пришли из мира WinForms, то возможно, что вы начнете с создания TreeViewItem и добавления их в свойтво Items. Это возможно, однако, поскольку это WPF, предпочтительнее забиндить TreeView на иерархическую структуру данных и потом использовать подходящий шаблон для отрисовки содержимого.

Мы покажем как сделать это двумя способами, и несмотря на то, что подход WinForms может показаться простым выбором на первый взгляд, вам обязательно надо попробовать подход WPF - на долгой дистанции он предлагает бОльшую гибкость и впишется лучше в остальной код WPF приложений.

Резюме

WPF TreeView достаточно сложный контрол. Первый пример, который показан в следующей главе, может показаться простым, но копнув глубже, вы поймете сложность этого контрола. В замен TreeView наградит вас отличной гибкостью и полезностью. Чтобы показать все его возможности, мы выделили цикл статей по TreeView в отдельную категорию. Кликните Next для начала.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!