J'implémente une boîte de dialogue (Windows/WPF), qui affiche une liste (entreprises), les détails de l'élément sélectionné (nom de l'entreprise) et certains éléments pour cet élément sélectionné (employés). Comme je n'ai besoin que d'un maximum de trois champs de données pour chaque élément, je voudrais le conserver dans une seule boîte de dialogue au lieu de l'étaler sur plusieurs boîtes de dialogue. En ce moment, je suis coincé avec le design de l'image, mais cela semble quelque peu intuitif/incorrect et je ne peux pas voir où est le problème.
Au bas de la boîte de dialogue, il y a des boutons Enregistrer/Annuler et le tableau avec les employés est destiné à permettre la modification en ligne.
Toute idée est la bienvenue.
Comme vous l'avez fait dans les annotations sur votre maquette, il est important de préciser la relation entre les éléments d'information.
C'est-à-dire que les "Détails de l'entreprise" sont contenus dans une seule entrée de la liste "Entreprises". La liste "Employés" est un sous-ensemble des "Détails de l'entreprise".
Je ferais ce qui suit:
Deux tables et rien de plus
On dirait que vous avez identifié le problème spécifique et la solution vous-même dans votre réponse à les conseils de Taylor L . Le problème est une interface utilisateur incohérente, avec une section d'édition distincte pour la table Companies tout en ayant une modification en ligne pour la table Employees. La solution consiste à fournir une modification en ligne dans le tableau Sociétés et à éliminer la zone de modification. Cela rend l'interface utilisateur cohérente, plus rapide et plus simple à utiliser, et optimise l'utilisation des biens immobiliers disponibles. Il serait très similaire aux fenêtres maître-détail couramment utilisées pour les gestionnaires de fichiers, avec une liste (ou arborescence) de dossiers à gauche et une liste du contenu des dossiers à droite, vous devriez donc être en mesure de vous familiariser avec vos utilisateurs (bien que les gestionnaires de fenêtres aient généralement une capacité d'édition en ligne relativement limitée).
Je ne comprends pas pourquoi vous "ne vouliez tout simplement pas utiliser le laid Master-Detail avec deux tables." (Pour moi, "maître-détail" fait référence à toute disposition hiérarchique à plusieurs volets où un volet fournit des informations supplémentaires relatives à l'objet actuel dans un autre. Ces informations supplémentaires peuvent être une liste de composants, tels que les employés de la société actuelle. Il ne signifie pas nécessairement une région d'édition distincte pour les objets d'une table ou d'une liste). Une disposition maître-détail à deux volets semble être la bonne solution. En ce qui concerne la laideur, c'est peut-être plus un problème de conception graphique que de mise en page, et vous avez besoin d'un designer qualifié pour le travailler, en vous inspirant peut-être d'autres fenêtres maître-détail multi-tables plus attrayantes, comme les gestionnaires de fichiers à travers les âges.
Fenêtre principale, pas une boîte de dialogue
En dehors de cela, un bon étiquetage, comme Taylor L suggéré , est utile.
En outre, au lieu des boutons Enregistrer et Annuler, envisagez les contrôles Enregistrer, Annuler et Fermer la barre d'outils/barre de menus, ainsi que d'autres commandes de base (par exemple, Couper, Copier, Coller, Insérer, Supprimer). La différence est que ni Enregistrer ni Annuler ne ferme la fenêtre et que Annuler annule une modification à un champ à la fois, au lieu de supprimer toutes les modifications apportées par l'utilisateur (pour ce dernier, l'utilisateur ferme la fenêtre sans enregistrer). Une grande fenêtre avec autant de données à modifier ne devrait pas être une boîte de dialogue, mais une fenêtre principale, permettant aux utilisateurs d'enregistrer (et de rétablir) progressivement leur travail, et de fournir aux utilisateurs un ensemble complet d'outils pour une édition sophistiquée qui sera probablement nécessaire. Si la fenêtre était une boîte de dialogue, un glissement de la souris sur le bouton Annuler pourrait vaporiser une demi-heure de travail.