Was ist der Unterschied zwischen WPF Command
und Event
?Was ist der Unterschied zwischen WPF Command und Event?
Antwort
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.
Command ist häufig verwendete Muster in SOA und Ereignisse sind in Event Driven Architecture (EDA). – Liton
"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
@Aliostad IMHO, eine "Business-Schicht" ist im Allgemeinen "außerhalb der Sicht". – Liton
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.
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
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).
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. :
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
Gegenstand und Beschreibung der Frage überhaupt nicht übereinstimmt. – akjoshi