mvvmlight galasoft mvvm mvvm-light

galasoft - nuget mvvmlight



MVVM Light Messenger: envĂ­o y registro de objetos (1)

¿Podría alguien ser tan amable de darme un ejemplo de cómo enviar y registrar objetos personalizados entre clases utilizando el Messenger de MVVM Light o dirigirme a un tutorial que cubra esto (preferiblemente un ejemplo concreto)? He intentado usar Messenger para pasar un objeto de mi proyecto a otra clase, pero nunca he tenido éxito. He buscado en línea ejemplos pero no he encontrado nada que me muestre lo que necesito. Gracias.


Jesse Liberty de Microsoft tiene un gran paso adelante sobre cómo usar los mensajes dentro de MVVM Light. La premisa es crear una clase que actuará como su tipo de mensaje, suscribirse y luego publicar.

public class GoToPageMessage { public string PageName { get; set; } }

Esto básicamente enviará el mensaje basado en el tipo / clase anterior ...

private object GoToPage2() { var msg = new GoToPageMessage() { PageName = "Page2" }; Messenger.Default.Send<GoToPageMessage>( msg ); return null; }

Ahora puede registrarse para el tipo de mensaje dado, que es la misma clase definida anteriormente y proporcionar el método que se llamará cuando se reciba el mensaje, en este caso ReceiveMessage .

Messenger.Default.Register<GoToPageMessage> ( this, ( action ) => ReceiveMessage( action ) ); private object ReceiveMessage( GoToPageMessage action ) { StringBuilder sb = new StringBuilder( "/Views/" ); sb.Append( action.PageName ); sb.Append( ".xaml" ); NavigationService.Navigate( new System.Uri( sb.ToString(), System.UriKind.Relative ) ); return null; }