有没有人能够友善地给我提供一个在使用MVVM Light的Messenger时如何在类之间发送和注册自定义对象的示例,或者指导我学习此内容的教程(最好是具体的示例)?我一直在尝试使用Messenger将我的项目中的一个对象传递到另一个类,但我从未成功过。我在网上搜索了示例,但没有找到任何可以帮助我的内容。谢谢。
有没有人能够友善地给我提供一个在使用MVVM Light的Messenger时如何在类之间发送和注册自定义对象的示例,或者指导我学习此内容的教程(最好是具体的示例)?我一直在尝试使用Messenger将我的项目中的一个对象传递到另一个类,但我从未成功过。我在网上搜索了示例,但没有找到任何可以帮助我的内容。谢谢。
微软的Jesse Liberty有一篇非常好的具体步骤,介绍如何在MVVM Light中使用消息传递。其基本思想是创建一个类作为您的消息类型,订阅该类,然后发布消息。
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;
}