Иерархия Визуальный Дизайн - PullRequest
0 голосов
/ 23 апреля 2009

У меня есть иерархия категорий, где у категории может быть один родитель (и у вас может быть несколько уровней детей).

Я исследую способы отображения этой информации пользователю, и кажется, что базовый макет ванильного дерева - самый интуитивный способ. Но мне интересно, кто-нибудь может предложить другие подходы.

Требования будут,

1) четко продемонстрировать пользователю родительские / дочерние отношения списка 2) позволяют пользователю легко перемещать элементы (перетаскиванием или другим способом) 3) Если у вас есть иерархические данные с несколькими родителями, как это изменит ваш выбор?

Спасибо всем! - Кевин

Ответы [ 4 ]

2 голосов
/ 23 апреля 2009

Ваш базовый древовидный контроль был очень успешным для отображения иерархических отношений Для новичков его относительно легко освоить, и теперь он является стандартом де-факто для иерархий. Это очень удобно для редактирования отношений, особенно с помощью перетаскивания. Это, пожалуй, единственный жизнеспособный выбор, когда иерархическая глубина изменяется произвольно в зависимости от объекта (т. Е. Для любого объекта на дереве могут быть дети, внуки, правнуки и т. Д. С неограниченным числом «поколений»). ).

Основная альтернатива дереву - это окно с панелями основной детали. В этом проекте одна панель содержит родительские объекты, а другая - дочерние объекты. При выборе родительского объекта дочерняя панель заполняется дочерними элементами. При необходимости вы можете использовать панели «великий ребенок» и «великий ребенок», но основные детали обычно работают лучше, когда в иерархии имеется небольшое фиксированное количество слоев. Пользователи редактируют родительско-дочерние отношения путем перетаскивания и вырезания / копирования и вставки дочерних объектов внутри или между окнами, подобно использованию древовидного элемента управления.

Мастер-детали обычно лучше деревьев в следующих случаях:

  • Вам необходимо показать несколько свойств или атрибутов для каждого объекта. Например, для данного объекта Project вы хотите указать не только номер сотрудника для каждого члена команды, но также их соответствующие имена, роли, звания, подразделения и фотографии. С помощью master-detail каждая панель может быть представлена ​​в виде таблицы или формы, позволяющей вам многое показать о каждом объекте. Для достижения этой цели элементы управления деревом часто прибегают к неэффективным и запутанным диалоговым окнам свойств.

  • Вам нужно подразделить детей. Например, для данного объекта Project вы хотите отделить членов своей группы от этапов проекта. С master-detail вы можете иметь две или более дочерние панели для одной родительской панели, одна из которых отображает членов команды, а другая - этапы. Неудобно разделять несвязанные дочерние объекты с помощью древовидного элемента управления.

  • У вас есть отношения многие-ко-многим, когда у каждого ребенка может быть несколько родителей, а также у каждого из родителей есть несколько детей. Например, скажем, у каждого проекта есть несколько сотрудников (в качестве членов команды), но каждый сотрудник может работать над несколькими проектами. У вас может быть окно «Проекты» в родительской панели и «Члены группы» в дочерней панели, «Сотрудники» в родительской панели и «Назначения проектов» в дочерней панели, или у вас могут быть оба окна. Элементы управления деревом могут вводить пользователей в заблуждение, когда существуют отношения «многие ко многим», поскольку пользователи не ожидают, что один и тот же ребенок будет иметь более одного родителя.

1 голос
/ 23 апреля 2009

TreeGX - отличный способ отображать иерархические данные иначе, чем стандартное дерево - ссылка здесь .

Я использую компонент для представления результатов поиска, и хотя он НЕ является бесплатным, он стоит денег, если вы хотите представить что-то уникальное.

0 голосов
/ 09 июля 2009

Ваш вопрос относится к вашей проблеме дизайна, как к абстрактной. К сожалению, не все так просто - если бы было одно идеальное решение!

Дизайн пользовательского интерфейса очень контекстуализирован. Вы должны подумать о группе пользователей (то есть их потребностях, целях и ожиданиях) и типе деятельности, которую вы пытаетесь поддерживать (то есть, что именно пользователь делает, когда просматривает это дерево? ваше приложение ежедневно или раз в год? и т. д.). То, что работает в вашем контексте, может не сработать в других местах.

Люди всегда разочаровываются, когда им говорят "иди создай быстрый прототип и протестируй его на примере своих конечных пользователей" . Это подразумевает дальнейшую работу и выходит за пределы зоны комфорта типичного разработчика. Однако это единственный способ убедиться, что ваш пользовательский интерфейс подходит именно вам.

0 голосов
/ 23 апреля 2009

Вы можете добавить визуальный дизайн стилей, чтобы сделать его более привлекательным. Как далеко вы хотите пойти, полностью зависит от вас. Это поможет вам с несколькими родителями.

...