Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVVM Light Messenger-发送和注册对象_Mvvm_Mvvm Light - Fatal编程技术网

MVVM Light Messenger-发送和注册对象

MVVM Light Messenger-发送和注册对象,mvvm,mvvm-light,Mvvm,Mvvm Light,有没有人能给我举个例子,说明如何使用MVVM Light的Messenger在类之间发送和注册自定义对象,或者给我介绍一个教程(最好是一个具体的例子)?我一直在尝试使用Messenger将项目中的对象传递给另一个类,但从未成功。我在网上找了一些例子,但没有找到任何能说明我需要什么的东西。谢谢。微软的杰西·利伯蒂(Jesse Liberty)对如何利用MVVM Light中的消息功能有很好的研究。前提是创建一个类,它将充当您的消息类型、订阅,然后发布 公共类GoToPageMessage { 公共

有没有人能给我举个例子,说明如何使用MVVM Light的Messenger在类之间发送和注册自定义对象,或者给我介绍一个教程(最好是一个具体的例子)?我一直在尝试使用Messenger将项目中的对象传递给另一个类,但从未成功。我在网上找了一些例子,但没有找到任何能说明我需要什么的东西。谢谢。

微软的杰西·利伯蒂(Jesse Liberty)对如何利用MVVM Light中的消息功能有很好的研究。前提是创建一个类,它将充当您的消息类型、订阅,然后发布

公共类GoToPageMessage
{
公共字符串PageName{get;set;}
}
这将基本上根据上述类型/类别发送消息

private对象GoToPage2()
{
var msg=new GoToPageMessage(){PageName=“Page2”};
Messenger.Default.Send(msg);
返回null;
}
现在,您可以注册给定的消息类型,它与上面定义的类相同,并提供在接收消息时将被调用的方法,在本例中为
ReceiveMessage

Messenger.Default.Register
( 
这
(操作)=>ReceiveMessage(操作)
);
私有对象接收消息(GoToPageMessage操作)
{
StringBuilder sb=新的StringBuilder(“/Views/”);
sb.追加(action.PageName);
sb.追加(“.xaml”);
导航服务。导航(
新的System.Uri(sb.ToString(),
System.UriKind.Relative);
返回null;
}

我发现它非常有用。对于第二个参考,使用末尾的“下一页”按钮将您带到他们制作的示例

我更喜欢在消息中使用视图的类型,而不是名称的一部分,因为在重命名页面或将其移动到另一个名称空间/文件夹时,视图的类型会发生更改。谢谢,这正是我想要的。我想我也要传递类型而不是字符串,intellisense本身就让生活更加愉快。