TreeView.BuildRows
Declaration
Obsolete protected IList<TreeViewItem> BuildRows(TreeViewItem root);Параметры
| Параметр | Описание |
|---|---|
| корень | Корневой элемент, который был создан в методе BuildRoot. |
Возвращаемое значение
IList<TreeViewItem> Список строк, отображаемых в TreeView. Позднее доступ к нему можно получить с помощью GetRows().
Описание
Переопределите этот метод, чтобы взять на себя управление процессом создания строк.
Этот метод вызывается при вызове Reload и при каждом разворачивании или сворачивании элементов. Реализация BuildRows по умолчанию сама заботится о кэше развёрнутых строк, опираясь на полное дерево и состояние развёрнутости элементов.
Для очень больших наборов данных или для часто меняющихся данных иногда желательно создавать только строки TreeView, а не всё дерево целиком. В этом случае переопределите данный метод и стройте строки вручную. Если встречается свёрнутый родитель, его потомков можно пропустить, поскольку они не видны. Задайте потомков такого элемента методом CreateChildListForCollapsedParent().
При использовании этого подхода BuildRoot должен создавать только корневой TreeViewItem, а не всё дерево. Вам потребуется добавить собственный делегат в getNewSelectionOverride, чтобы обрабатывать изменения выделения. Кроме того, обязательно переопределите GetAncestors() и GetDescendantsThatHaveChildren() и берите эти сведения из данных модели, иначе кадрирование и разворачивание поддеревьев работать не будут.
При построении строк вручную помните использовать строку поиска TreeView для фильтрации элементов.
Дополнительные ресурсы: BuildRoot, SetupParentsAndChildrenFromDepths, SetupDepthsFromParentsAndChildren, TreeViewItem.