,,MVVM简化的Messager类实例代码

,,MVVM简化的Messager类实例代码

本文主要介绍MVVM的简化Messager类的相关信息。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

前言

在开发Wpf/SL应用程序时,我们经常会遇到不同页面和表单之间参数传递的问题。对于这类问题,我们通常通过事件来实现数据传输,也可以定义全局静态变量来共享数据。这里,我们使用另一种非常高效和优雅的方法来传递消息。在这里,我称之为信使。其实Messenger并不是mvvm的专利。我们可以把它看作是一种设计模式,你可以在其他方面使用它。net程序。

简化Messager类

看MVVMLight的Messager源代码,自己实现一个简单的Messager类。

Messager类可以在MVVM中实现视图与虚拟机、虚拟机与虚拟机、视图与视图之间的通信。

公共类消息器

{

私有静态Messager _ MessageInstance

private Dictionarystring,Action _ message collection=new dictionary string,Action();

private Dictionarystring,action class _ messaget collection=new dictionary string,action class();

公共静态消息默认

{

得到

{

if (_MessageInstance==null)

{

_ message instance=new Messager();

}

return _ MessageInstance

}

}

公共void寄存器(字符串键,动作动作)

{

_MessageCollection。添加(键,动作);

}

public void RegisterT(字符串密钥,ActionT操作)

{

action class ST action class=new action class ST();

actionClass.action=action

_MessageTCollection。Add(key,action class);

}

公共void发送(字符串密钥)

{

if (_MessageCollection。Keys .包含(key))

{

_MessageCollection[key]。invoke();

}

}

公共void SendT(字符串密钥,T para)

{

if (_MessageTCollection。Keys .包含(key))

{

action class t action class=(action class t)_ messaget collection[key];

action class . action . invoke(para);

}

}

}

它由主register方法注册,并由Send方法触发。

例如,需要在VM中显示一个表单。为了不破坏MVVM模式,我们可以编写在视图中显示表单的方法,并用Messager注册它。

信使。default . register string(' ChangeControlShow ',executechangedcontlshow);

私有void ExecuteChangedContrlShow(字符串消息)

{

//一些代码.

}

在虚拟机中调用

信使。default . send string(' ChangeControlShow ',' test ');

Send有两个参数,第一个是方法的键,根据这个键可以找到唯一的方法,第二个参数是要调用的方法的参数。

这样,只要知道方法的键,就可以在任何文件中调用注册的方法,我们也不再需要使用委托了。

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: