有人能够给我一个如何使用MVVM Light的Messenger在类之间发送和注册自定义对象的示例,或者指向一个涵盖此内容的教程(最好是一个具体示例)吗?我一直在尝试使用Messenger将项目中的对象传递给另一个类,但我从来没有成功过.我在网上看了一些例子,但没有找到任何能告诉我需要的东西.谢谢.
Aar*_*ver 59
微软的Jesse Liberty 在如何利用MVVM Light中的消息传递方面有一个很好的具体步骤.前提是创建一个类,它将充当您的消息类型,订阅,然后发布.
public class GoToPageMessage
{
public string PageName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这基本上会根据上面的类型/类发送消息......
private object GoToPage2()
{
var msg = new GoToPageMessage() { PageName = "Page2" };
Messenger.Default.Send<GoToPageMessage>( msg );
return null;
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以注册给定的消息类型,该类型与上面定义的类相同,并提供在接收消息时将被调用的方法,在本例中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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43370 次 |
| 最近记录: |