2010-09-20 1 views

Antwort

5

Im Allgemeinen können Sie fast dasselbe mit Ereignissen wie mit Befehlen tun, es ist nur ein anderes Muster der Handhabung von Benutzerinteraktion.

Commands in WPF können Sie die Implementierung eines Befehls-Handler in die Buisness Schicht bewegen. Befehle kombinieren Status aktivieren und ausführen, so dass alles vorhanden ist. Reagieren Sie mehr, indem Sie nach dem MVVM-Muster suchen.

Befehle sind komplexer zunächst zu implementieren, so dass, wenn Ihre Anwendung klein ist, sollten Sie erwägen, an Veranstaltungen nur kleben.

+0

Command ist häufig verwendete Muster in SOA und Ereignisse sind in Event Driven Architecture (EDA). – Liton

+2

"Befehle in WPF ermöglichen es Ihnen, die Implementierung eines Befehlshandlers in die Geschäftsebene zu verschieben." das ist nicht wahr. Es muss "außerhalb der Sicht" sein. – Aliostad

+4

@Aliostad IMHO, eine "Business-Schicht" ist im Allgemeinen "außerhalb der Sicht". – Liton

2

Sie können WPF-Befehl in der Ansicht (XAML) binden und das Ereignis ausgelöst erhalten. Auf diese Weise müssen Sie keinen Code verwenden, hinter dem in MVVM ein No-No steht.

Also das Bindeelement ist sehr wichtig. Aber es implementiert auch CanExecute, die normalerweise Ihr Steuerelement deaktiviert, wenn es falsch zurückgibt, z. wenn es eine Schaltfläche ist.

+0

Ihr Feedback wird mehr geschätzt, wenn Sie mehr Details und mehr References angeben, wenn möglich. Für einen Anfänger hat Ihr Feedback darauf hingewiesen, dass WPF-Entwickler diesen Erfahrungen folgen können. Vielen Dank – user1298925

0

Grob gesagt, Command ist Kapselung von Object (Schaltfläche, Menü) Aktivieren/Deaktivieren von Status und Aktion.

Begrenzung der Command:

  • Multicast (können Sie Multi-Bindung verwenden, aber nicht so häufig und nicht so schön wie Event-Multicast fühlen)
  • Need 2 Schritt die Lampe zu leuchten. (Wenn Ihre Schaltfläche immer aktiviert ist, verschwenden Sie nur Ihren Code).
1

In Ereignissen ist eine Aktion eng mit ihrer Quelle gekoppelt und kann nicht frei wiederverwendet werden; Mit Befehlen können Sie verschiedene Aktionen einfach an einem einzigen Ort verwalten und überall in der Anwendung wiederverwenden.

Was zu einer Taste oder einen Timer angebracht Befehle unterscheidet sich von einem einfache Ereignishandler macht, ist, dass Befehle die Semantik trennen und den Urheber einer Handlung aus ihrer Logik. Dies ermöglicht eine mehrfache und unterschiedlichen Quellen die gleiche Befehlslogik aufzurufen, und es erlaubt die Befehlslogik für verschiedene Ziele angepasst werden.

aus genommen - Befehlsübersicht: http://msdn.microsoft.com/en-us/library/ms752308(v=VS.90).aspx

Dieser Artikel beschreibt das Konzept der Befehle und ist vor der Verwendung Befehle lesen.

Dieser SO-Thread hat auch viele nützliche Informationen. :

Custom WPF command pattern example

3

Commands ähnlich ist, außer Events wir eine beliebige Anzahl von UI-Steuerelemente oder Eingabegesten auf einen Befehl und bindet zuordnen können, die zu einem Behandlungsroutine Befehl, der ausgeführt wird, wenn die Steuerung aktiviert oder Gesten durchgeführt.

Command auch Spur Wetter halten oder sie sind nicht verfügbar.Wenn sie nicht verfügbar sind, sind alle diesem Befehl zugeordneten Steuerelemente deaktiviert.

Der Code, der ausgeführt wird, wenn der Befehl aufgerufen wird, befindet sich in den Befehlen Execute Event-Handler. Der Code, der bestimmt, ob ein Befehl aufgerufen werden kann oder nicht aufgerufen werden kann, befindet sich in den Befehlen CanExecute Event-Handler.

WPF haben einige eingebaute Befehle:

Command Class   | Example Commands 
----------------------------------------------- 
ApplicationCommands | Close, Cut, Copy, Paste, Save, Print 
NavigationCommands  | BrowseForward, BrowseBack, Zoom, Search 
EditingCommands  | AlignXXX, MoveXXX, SelectXXX 
MediaCommands   | Play, Pause, NextTrack, IncreaseVolume, Record, Stop