Einfaches Event-Handling in MVVM
Frage mich, was hatten die Leute für Ideen auf, wie man am besten behandeln von Ereignissen in einem ViewModel aus steuert auf einen Blick ... in der leichtesten möglichen Weise.
Beispiel:
<MediaElement
MediaOpened={Binding SomeEventHandler} />
In diesem Fall wollen wir behandeln die MediaOpened Ereignis in einem ViewModel. Ohne eines Frameworks wie Prism, wie würde man binden diese an ein ViewModel?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kommandierender - Ihre SomeEventHandler' muss eine Klasse, die
ICommand
... es gibt einen Haufen Literatur, die online verfügbar...Auch würde ich prüfen, bekommen eine Kostenlose, leicht 'mini' - MVVM-framework, wie MvvmFoundation, die die RelayCommand nur für solche Zwecke eingesetzt werden (ohne dass die Komplexität/overhead-Lern-PRISMA)
EDIT:
Haben Sie einen Blick auf diese blog für die Befestigung Befehl auf jeden Fall... Es ist unglaublich leistungsstark, wie ich schon erwähnt habe, aber ich denke, Sie brauchen, um zu einem Urteil zu nennen, wenn dies ist, was Sie wollen, im Vergleich mit so etwas wie dem anbringen eines old-fashioned-event, und das mit einer super-slim-Ereignisprozedur im code hinter, die einfach ruft eine Methode auf der ViewModel, so etwas wie:
pragmatische vs Best-practise - ... lasse ich es mit Euch 😉
Haben Sie einen Blick auf Marlon Grech ist Befestigt Befehl Verhaltensweisen. Es erleichtert das binden, Veranstaltungen zu ViewModel Befehle
MediaOpened ist ein Ereignis und keine Unterstützung für Befehl verbindlich.
In Ordnung zu binden, um die Veranstaltung zu einem helper-Objekt kann verwendet werden, legt der Veranstaltung und führt einen Befehl aus.
Zu binden, um die view-Modell-fügen Sie eine Eigenschaft, die implementiert ICommand. Abbildung 3 in diesem MSDN magazine-Artikel zeigt die RelayCommand ist eine brauchbare Implementierung des ICommand. RelayCommand ist initialisiert mit einem delegate zu verbinden, um Ihre view-Modell.
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Den kleinen und opensource ImpromptuInterface.MVVM Rahmen ha ein event-binding-syntax und mit der dlr in .net 4.0. Obwohl in diesem Beispiel erfordert die Unterklassen der ImpromptuViewModel. Die event-binding-Eigenschaft keine Abhängigkeit von diesem bestimmten viewmodel-Typ und die eventbinding Anbieter beteiligt ist öffentlich.
...