Pregunta

Tengo una jerarquía de categorías, donde una categoría puede tener un solo padre (y usted puede tener varios niveles de hijos).

Estoy investigando formas de mostrar esta información al usuario y parece que un diseño básico de árbol básico es la forma más intuitiva de hacerlo.Pero me pregunto si alguien puede sugerir otros enfoques.

Los requisitos serían,

1) Demostrar claramente al usuario las relaciones padre/hijo de la lista 2) permitir que el usuario mueva fácilmente los elementos (ya sea arrastrando y soltando o algún otro método) 3) Suponiendo que tuvieras datos jerárquicos que tuvieran varios padres, ¿cómo cambiaría eso tu elección?

¡Gracias a todos!-Kevin

¿Fue útil?

Solución

Su control básico árbol ha sido un gran éxito para los que muestra las relaciones jerárquicas. Es relativamente fácil de aprender para los principiantes y ahora es el estándar de facto para las jerarquías. Es muy adecuado para las relaciones de edición, sobre todo con arrastrar y soltar. Es tal vez la única opción viable cuando la profundidad jerárquica varía arbitrariamente por objeto (es decir, para cualquier objeto en el árbol, no puede haber hijos, nietos, bisnietos, y así sucesivamente hasta un número indefinido de “generaciones”. ).

La principal alternativa al árbol es una ventana con cristales de maestro-detalle. En este diseño, un panel contiene objetos padre y otro contiene los objetos secundarios. Selección de un objeto padre rellena el panel de niño con sus hijos. Usted puede tener paneles de gran seguridad para niños y paneles de gran-niño, según sea necesario, pero magistrales detalles generalmente funciona mejor cuando hay un pequeño número fijo de capas en la jerarquía. Los usuarios editar las relaciones entre padres e hijos mediante arrastrar y soltar y cortar / copiar y pegar de objetos secundarios ya sea dentro o entre las ventanas, similar a la utilización de un control de árbol.

Master-detalles son por lo general mejor que los árboles en los siguientes casos:

  • Es necesario para mostrar varias propiedades o atributos de cada objeto. Por ejemplo, para un objeto determinado proyecto, desea incluir no sólo el número de empleado para cada miembro del equipo, sino también sus respectivos nombres, funciones, títulos, divisiones y fotografías. Con un maestro-detalle, cada panel puede ser presentado como una tabla o formulario que le permite mostrar mucho sobre cada objeto. controles de árbol a menudo recurren a los diálogos de propiedades ineficientes y confusas para lograr esto.

  • Es necesario subdividir los niños. Por ejemplo, para un objeto determinado proyecto, desea mantener sus Miembros del Equipo separados de sus etapas del proyecto. Con un maestro-detalle, puede tener dos o más paneles secundarios para un panel matriz única, con un panel de una lista de los miembros del equipo y una lista de las etapas. Es incómodo para mantener a los niños no relacionado objetos separados con un control de árbol.

  • Hay muchos-a-muchos relación, donde cada niño pueda tener múltiples padres, así como cada uno de los padres que tienen varios hijos. Por ejemplo decir que cada proyecto tiene varios empleados (como los miembros del equipo) pero cada empleado puede trabajar en varios proyectos. Usted puede tener una ventana con proyectos en el panel de padres y miembros del equipo en el panel de niño, o empleados en el panel de los padres y las asignaciones del proyecto en el panel de niño, o puede tener ambas ventanas. controles de árbol pueden confundir a los usuarios cuando hay muchos-a-muchos relación porque los usuarios no esperan que el mismo niño que está bajo más de un padre.

Otros consejos

TreeGX es una manera dulce de mostrar los datos jerárquicos en una manera diferente de la norma árbol - enlace es aquí .

Yo uso el componente para presentar los resultados de búsqueda y, si bien no es libre vale la pena el dinero si quiere presentar algo único.

Puede poner un poco de estilo de diseño visual diagrama de flujo para que sea más atractivo. ¿Hasta dónde quiere ir es totalmente de usted. Esto le ayudará con múltiples padres.

Su pregunta trata su problema de diseño como si fuera algo abstracto.Desafortunadamente, no es tan simple: ¡si tan solo hubiera una solución perfecta!

El diseño de UI está altamente contextualizado.Tienes que pensar en el grupo de usuarios (es decir,sus necesidades, objetivos y expectativas) y el tipo de actividad que intenta apoyar (es decir,¿Qué hace exactamente el usuario cuando navega por este árbol?¿Cuál es su objetivo?¿Usarán tu aplicación a diario o una vez al año?etc).Lo que funciona en su contexto puede no funcionar bien en otro.

La gente siempre se decepciona cuando se le dice "crea un prototipo rápido y pruébalo en una muestra de tus usuarios finales".Implica trabajo adicional y está fuera de la zona de confort de un desarrollador típico.Sin embargo, es la única manera de estar seguro de que su interfaz de usuario sea adecuada para su contexto determinado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top