为了账号安全,请及时绑定邮箱和手机立即绑定

MVVM Light Messenger-发送和注册对象

/ 猿问

MVVM Light Messenger-发送和注册对象

MMMHUHU 2019-10-21 09:21:48

可能有人会给我一个示例,说明如何使用MVVM Light的Messenger来在类之间发送和注册自定义对象,或为我提供涵盖此内容的教程(最好是一个具体示例)吗?我一直在尝试使用Messenger将项目中的对象传递给另一个类,但是我从未成功过。我在网上寻找示例,但没有发现任何可以满足我需求的东西。谢谢。



查看完整描述

2 回答

?
SMILET

微软的杰西自由有很大的具体穿行于如何利用MVVM灯内的消息的。前提是创建一个将用作您的消息类型的类,进行订阅,然后进行发布。


public class GoToPageMessage

{

   public string PageName { get; set; }

}

这实际上将根据上述类型/类发送消息。


private object GoToPage2()

{

   var msg = new GoToPageMessage() { PageName = "Page2" };

   Messenger.Default.Send<GoToPageMessage>( msg );

   return null;

}

现在,您可以注册给定的消息类型,该类型与上面定义的类相同,并提供在这种情况下将在收到消息时调用的方法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;

}


查看完整回答
反对 回复 2019-10-21
?
慕森王

我发现这和本非常有用的。对于第二个参考,请使用末尾的“下一页”按钮,以向您介绍他们制作的示例。


查看完整回答
反对 回复 2019-10-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信