Ich versuche, die Funktion mvvm-light messenger zu verwenden, um ein benutzerdefiniertes Bestätigungsdialogfeld in meiner Ansicht zu öffnen, ausgelöst durch einen Befehl in meinem Ansichtsmodell.
Ich denke, ich verstehe die Verwendung von Messenger.Default.Register
und Messenger.Default.Send
.
Aber wie bekomme ich die Dialogergebnisse zurück in meinem Viewmodel?
Für mich scheint das Senden eine Einbahnstraße zu sein ...
Könnte jemand einem Anfänger mit einem kleinen C # / WPF-Codebeispiel helfen?
Danke für jede Hilfe
IMHO ist es besser, das NotificationMessageAction<T>
zu verwenden, wie es für diese Aufgabe ausgeschnitten ist.
Auf der Senderseite:
%Vor%Und auf der Empfängerseite:
%Vor% Ich glaube, dass dieser Ansatz sauberer ist, da er keine unnötige Abhängigkeit von der View zum ViewModel erzeugt (obwohl dieser Weg nicht so schlecht ist). Zur besseren Lesbarkeit sollten Sie die NodificationMessageAction<MessageResult>
unterteilen. Ie.
Dann der Absender
%Vor%und Empfängerseite
%Vor%wird viel klarer.
Und sehr wichtig heben Sie die Registrierung des Empfängers auf, da sonst möglicherweise ein Speicherleck entsteht.
Tags und Links wpf mvvm-light