Was ist der Unterschied zwischen WPF-Befehl und -Ereignis in WPF?

8

Ich habe gerade den Unterschied zwischen WPF Command und Event in WPF gegoogelt. Ich bin auf der folgenden Seite von stackoverflow gelandet, wo die Diskussion weitergeht.

Was ist der Unterschied zwischen WPF Command und Event?

Ich bin nur in der Lage zu verstehen, von dort zu folgen

  1. Befehle können in der Business-Schicht geschrieben werden, während das Ereignis nur in der Präsentation angezeigt wird
  2. Ein einzelner Befehl kann mit vielen Steuerelementen verknüpft werden, aber Ereignis kann nur mit nur einem Steuerelement verknüpft werden.

Habe ich Recht? Gibt es einen anderen Unterschied zwischen ihnen?

    
Community 17.04.2013, 11:58
quelle

2 Antworten

5

Sie haben recht, aber nur teilweise.

  1. Das Hauptproblem dort ist, dass Ereignisse nicht passen gut in MVVM Paradigma. Einfach zu sagen, dass Ereignisse kaum steckbar sind, können Sie nicht an den Event-Handler binden. Nichtsdestoweniger gibt es keine Begrenzung für die Verwendung von Befehlen in der Darstellungsschicht, aber dies hat keine Vorteile. Sowie Sie Ihre Kontrolle in BLL fangen und Event-Handler anhängen können, aber dieser Fall ist noch schlimmer.
  2. Nein. Event-Handler könnten auch zugeordnet werden verschiedene Steuerelemente, solange der Typ der Ereignisargumente übereinstimmt.

Auch Befehle geben Ihnen einige kostenlose Vorteile. Beispielsweise wird das Befehlselement deaktiviert, wenn CanExecute() false zurückgibt. Ein weiterer Vorteil ist, dass die Verwendung von Befehlen Sie zwingt, dem Prinzip der Trennung von Bedenken zu folgen.

    
Denys Denysenko 17.04.2013, 12:05
quelle
4

Ein Ereignis ist ein Auslöser, der auftritt, wenn auf der Benutzeroberfläche etwas passiert. Ein Befehl ist, wie dieses Ereignis von Ihrem Domänenmodell behandelt wird.

    
MrDosu 17.04.2013 12:04
quelle

Tags und Links