it-swarm.com.de

Warum erklären Anwendungen nicht den Grund für ausgegraute Symbole / Menüoptionen?

Mögliches Duplikat:
Menüelemente nicht ausblenden oder deaktivieren?

Ich denke, Anwendungen sollten erklären, warum eine Option des anklickbaren Symbols ausgegraut ist, d. H. Nicht auswählbar oder nicht aktiv. Zum Beispiel ein Fragezeichen daneben mit der Aufschrift "Warum?!" Andernfalls kann der Benutzer nur raten.

Hier ist ein Beispielszenario, das eine solche Erklärung vertragen könnte: https://productforums.google.com/forum/?fromgroups=#!topic/gmail/jXEgc1rRJxE

Ist dies bei Designern von Benutzeroberflächen noch nicht geschehen? Wenn ja, warum nicht?

3
therobyouknow

Es ist im Allgemeinen auf die Trennung von Präsentation und Logik zurückzuführen. Besonders in der MVVM-Welt. Es ist aber durchaus machbar.

Nehmen wir ein einfaches MVVM-Beispiel (Angenommen, C # und WPF hier, aber dies sollte ein allgemeiner Zweck sein).

In meiner Anwendung habe ich eine Schaltfläche Einfügen, die in meinem Ansichtsmodell an ein PasteCommand gebunden ist. PasteCommand verfügt über einen CanExecute -Handler, der false zurückgibt, wenn entweder keine Daten in der Zwischenablage vorhanden sind oder die Daten in der Zwischenablage in einem Format vorliegen, das nicht verwendet werden kann.

Jetzt kann Ihr CanExecute -Handler nur noch ein boolean zurückgeben. Es gibt keine Möglichkeit zu sagen, warum bei dieser Methode.

Da Ihr Befehl nichts über die Ansicht weiß, kann er nicht einfach den Tooltip-Text der Schaltfläche auf etwas Hilfreiches setzen. Dieser QuickInfo-Text muss an eine Eigenschaft im Ansichtsmodell gebunden sein.

Plötzlich funktioniert alles nicht mehr, da Sie in Ihrem Ansichtsmodell für jedes Steuerelement eine Eigenschaft benötigen, für die Sie einen Grund anzeigen möchten, warum es deaktiviert ist. Chaotisch und nicht wartbar.

Wenn Sie eine Klasse haben, die von ICommand geerbt hat, die eine FailureReason -Eigenschaft hat und diese für Ihr PasteCommand verwendet, können Sie den Tooltip-Text binden des deaktivierten Steuerelements auf diesen Wert (aber nur, wenn es deaktiviert ist, was Sie mit WPF tun können) - obwohl dies technisch einige Entwurfsregeln verletzt, da die Ansicht dann von Ihrer Implementierung des Ansichtsmodells und der benutzerdefinierten Befehlsklasse abhängig wird.

1
PhonicUK

Das Ausgrauen nicht verfügbarer Menüelemente geht mindestens auf die 1980er Jahre zurück Apple Mac Interface.

Dies ist eine Konvention, genauso wie ein X zum Schließen von Windows verwendet wird. Und Schnittstellen benötigen oft ein wenig "Anleitung", um diese Konventionen zu lernen.

0
PhillipW