Ваш базовый древовидный контроль был очень успешным для отображения иерархических отношений Для новичков его относительно легко освоить, и теперь он является стандартом де-факто для иерархий. Это очень удобно для редактирования отношений, особенно с помощью перетаскивания. Это, пожалуй, единственный жизнеспособный выбор, когда иерархическая глубина изменяется произвольно в зависимости от объекта (т. Е. Для любого объекта на дереве могут быть дети, внуки, правнуки и т. Д. С неограниченным числом «поколений»). ).
Основная альтернатива дереву - это окно с панелями основной детали. В этом проекте одна панель содержит родительские объекты, а другая - дочерние объекты. При выборе родительского объекта дочерняя панель заполняется дочерними элементами. При необходимости вы можете использовать панели «великий ребенок» и «великий ребенок», но основные детали обычно работают лучше, когда в иерархии имеется небольшое фиксированное количество слоев. Пользователи редактируют родительско-дочерние отношения путем перетаскивания и вырезания / копирования и вставки дочерних объектов внутри или между окнами, подобно использованию древовидного элемента управления.
Мастер-детали обычно лучше деревьев в следующих случаях:
Вам необходимо показать несколько свойств или атрибутов для каждого объекта. Например, для данного объекта Project вы хотите указать не только номер сотрудника для каждого члена команды, но также их соответствующие имена, роли, звания, подразделения и фотографии. С помощью master-detail каждая панель может быть представлена в виде таблицы или формы, позволяющей вам многое показать о каждом объекте. Для достижения этой цели элементы управления деревом часто прибегают к неэффективным и запутанным диалоговым окнам свойств.
Вам нужно подразделить детей. Например, для данного объекта Project вы хотите отделить членов своей группы от этапов проекта. С master-detail вы можете иметь две или более дочерние панели для одной родительской панели, одна из которых отображает членов команды, а другая - этапы. Неудобно разделять несвязанные дочерние объекты с помощью древовидного элемента управления.
У вас есть отношения многие-ко-многим, когда у каждого ребенка может быть несколько родителей, а также у каждого из родителей есть несколько детей. Например, скажем, у каждого проекта есть несколько сотрудников (в качестве членов команды), но каждый сотрудник может работать над несколькими проектами. У вас может быть окно «Проекты» в родительской панели и «Члены группы» в дочерней панели, «Сотрудники» в родительской панели и «Назначения проектов» в дочерней панели, или у вас могут быть оба окна. Элементы управления деревом могут вводить пользователей в заблуждение, когда существуют отношения «многие ко многим», поскольку пользователи не ожидают, что один и тот же ребенок будет иметь более одного родителя.