码迷,mamicode.com
首页 > 其他好文 > 详细

MVVM中的Messenger

时间:2018-05-11 15:37:59      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:对象   功能   def   private   color   开始   col   apt   VID   

    通过Mvvm Light源码我们可以知道Messenger的实现细节,如果你现在还不能理解这些代码也没关系,很多东西理解起来远比使用起来难,Messenger也是如此,它使用起来很简单,由于Messenger只公开了一些消息注册和发送方法,使用者一看便知方法的功能,而只需关注要发送的数据和接收的对象就可以了。

1、发送:

 1 Messenger.Default.Send<string>("StartRecordVis");//开始录制可见光,发送消息 

2、接收:

技术分享图片
 1 1 Messenger.Default.Register<string>(this, BDRecordVideo);// 开始录制
 2  2 private void BDRecordVideo(string obj)
 3  3         {
 4  4             switch (obj)
 5  5             {
 6  6                 case "StartRecordVis":
 7  7                     this.visVideo.StartCapture("vis");//录制可见光
 8  8                     break;
 9  9                 case "StartRecordInf":
10 10                     this.infVideo.StartCapture("inf");//录制红外
11 11                     break;
12 12             }
13 13         }
View Code

3、清理

Messenger通过全局的字典集合来保存弱引用关系,因此在对象不使用时,我们要养成清理的习惯,调用Unregister来从字典集合中移除引用关系。

 1 Messenger.Default.Unregister(this);  

 

MVVM中的Messenger

标签:对象   功能   def   private   color   开始   col   apt   VID   

原文地址:https://www.cnblogs.com/LY-HeroesRebor/p/9024700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!