Mi sono confuso con il ruolo di Messenger in MVVM. Vedo articoli contraddittori a riguardo.
Communicating from the View-Model to the View
Observant readers will notice that Figure 1 has one arrow missing: in this figure, there is no way for the View-Model to communicate with the view. As mentioned earlier, the View-Model should ideally have no knowledge of the view that it is attached to. In fact, it is very common for a given View-Model to be attached to multiple views—for instance, because one view might become too complex and be split into two pages. To guarantee flexibility, the View-Model must have only an abstracted knowledge of what the view can do.
There are multiple ways to solve this issue. The two solutions that I propose here are using MVVM Light’s Messenger class and using view services.
generalmente dicendo che i messaggi dovrebbero essere dal modello di vista alla vista nel caso sia necessario.
Anche in questo articolo, avverte l'utilizzo del Messenger in quanto causa la minore leggibilità del codice (che sono d'accordo).
Ma su Un altro articolo
È usato in modo diverso per comunicare messaggi tra View-Models
In questo scenario, non viene visualizzato il messaggio "Perché VM non può fare riferimento a un'altra VM?"
come il View-Model referenziato può essere facilmente deriso e testato.