2013-04-17 3 views
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-Befehl und -Ereignis in WPF?

What is the difference between WPF Command and Event?

Ich bin nur in der Lage folgende von dort zu verstehen

  1. Befehle können in Business-Schicht geschrieben werden, während Ereignis nur in der Darstellung
  2. Ein einzelner Befehl kann mit vielen Kontrollen, aber Ereignis zugeordnet werden kann nur mit einem Steuerelement verknüpft werden.

Bin ich richtig? Gibt es einen anderen Unterschied zwischen ihnen?

Antwort

5

Sie haben Recht, aber nur teilweise.

  1. Die Hauptsorge ist, dass Ereignisse nicht gut in MVVM Paradigma passen . 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 könnten Ihre Kontrolle in BLL und anhängen Event-Handler, aber dieser Fall ist noch schlimmer.
  2. Nein. Event-Handler können auch mit verschiedenen Steuerelementen verknüpft werden, solange der Typ der Ereignisargumente übereinstimmt.

Auch Befehle gibt Ihnen einige kostenlose Vorteile. Zum Beispiel wird die Verwendung des Befehlselementes deaktiviert, wenn CanExecute() den Wert false zurückgibt. Ein weiterer Vorteil ist, dass die Verwendung von Befehlen zwingt, dem Prinzip Separation of concerns zu folgen.

4

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

Verwandte Themen