Ich bin neu in MVVM. Ich lerne gerade dieses Muster und möchte es in meinem Projekt verwenden. Ich verstehe bereits das Arbeitsprinzip dieses Musters und habe gelernt, Befehle zu verwenden. Aber ich habe Frage, wie man Ereignisse eines anderen Steuerelements zum Beispiel ListBox SelectionChanged Ereignis behandelt. ListBox hat kein Befehlsattribut
Sie müssen es oft nicht. Sie können beispielsweise die Eigenschaft ListBox
von SelectedItem
an eine Eigenschaft in Ihrem Ansichtsmodell binden:
Damit erhalten Sie nicht nur Zugriff auf den ausgewählten Kunden in Ihrem Ansichtsmodell, sondern Sie können auch Ihr Ansichtsmodell den ausgewählten Kunden diktieren, indem Sie die Eigenschaft selbst festlegen.
Es gibt andere Techniken, um die direkte Behandlung von Ereignissen in Ihrem Code-Behind zu "vermeiden". Zum Beispiel angehängtes Verhalten. Sie sollten jedoch keine Angst davor haben, Ereignisse direkt zu behandeln, wenn sich der Code ausschließlich auf die Ansicht bezieht und Ihren Code vereinfacht.
Die BookLibraray -Anwendung des WPF-Anwendungsframeworks (WAF) zeigt, wie um WPF-Ereignisse in einer von Model-View-ViewModel (MVVM) entworfenen Anwendung anzuhören. Es ermöglicht einem Benutzer, mehrere Bücher auszuwählen, so dass er alle gleichzeitig löschen kann. Siehe Klasse BookLibrary.Presentation.Views.BookView.