/*** Created with JetBrains WebStorm.* User: 宇乔* Date: 13-8-2* Time: 下午3:01* To change this template use File | Settings | File Templates.*/function Event(name) {var handlers = [];this.getName = function () {return name;}this.addHandler = function (handler) {handlers.push(handler);}this.removeHandler = function (handler) {handlers.forEach(function (item, i) {if (item == handler) {handler.splice(i, 1);}})}this.fire = function (eventArgs) {handlers.forEach(function (h) {h(eventArgs);})}
}function EventAggregator() {var events = [];function getEvent(name) {var fn;events.forEach(function (item) {if (item.getName() == name) {fn = item;return;}});return fn;}this.subscribe = function (eventName, handler) {var event = getEvent(eventName);if (!event) {event = new Event(eventName);events.push(event);}event.addHandler(handler);}this.publish = function (eventName, eventArgs) {var event = getEvent(eventName);if (!event) {event = new Event(eventName);events.push(event);}event.fire(eventArgs);}
}

  

转载于:https://www.cnblogs.com/Mr-Joe/p/3232729.html

Event Aggregator相关推荐

  1. 5.Prism Event Aggregator

    Event Aggregator Prism Library提供了一种事件机制,支持应用程序中松散耦合组件之间的通信.这种机制基于事件聚合器服务,允许发布者和订阅者通过事件进行通信,但彼此之间仍然没有 ...

  2. 【Prism 8】事件聚合器(Event Aggregator)

    步骤: 继承PubSubEvent<T>创建自定义事件类型 创建事件发送者 创建事件接收者,并订阅指定的事件 1. 事件聚合器 Prism 提供了一种机制,可以实现应用程序中松散耦合组件之 ...

  3. All About Angular 2.0

    2019独角兽企业重金招聘Python工程师标准>>> angular All About Angular 2.0 Posted by Rob Eisenberg on  Novem ...

  4. C# WPF MVVM开发框架Caliburn.Micro常用功能指南②

    这是Caliburn.Micro项目中最常用的约定和功能的快速指南. 01 - 事件连接 这会自动将控件上的事件关联到ViewModel上的方法. 常规约定: <Button x:Name=&q ...

  5. 学习MVVM设计模式后第一次用于生产

    WPF的MVVM设计模式 从winform转变到WPF的过程,难点主要还是在MVVM的设计模式.当然,如果依然采用winform的涉及方式,在每个控件背后绑定事件的方式运用在wpf中,依然可行,但是假 ...

  6. Caliburn.Micro简介

    Caliburn.Micro简介 Caliburn.Micro的定位是一个轻量级的MVVM框架,事实上是Caliburn框架精简了90%的代码(当然,据说保留了90%的功能).CM由C#编写,可用于. ...

  7. C# WPF MVVM开发框架Caliburn.Micro入门介绍①

    01 - Caliburn.Micro简介 Caliburn.Micro是一套基于XAML的MVVM模式的开发框架,它小巧而强大.在CaliburnMicro中只需要按照约定把View的名字加上后缀V ...

  8. 事件聚合器 - Caliburn.Micro 文档系列

    文章目录 事件聚合器 (Event Aggregator) 入门 创建与生命周期 发布事件 使用自定义线程发布事件 订阅事件 订阅许多事件 多态的订阅者 查询处理程序 协同感知订阅者 任务感知订阅者 ...

  9. [Windows] Prism 8.0 入门(上):Prism.Core

    1. Prism 简介 Prism 是一个用于构建松耦合.可维护和可测试的 XAML 应用的框架,它支持所有还活着的基于 XAML 的平台,包括 WPF.Xamarin Forms.WinUI 和 U ...

最新文章

  1. centos 6安装 vim
  2. 4键电子手表说明书_电子手表怎么调(电子手表的四个键的功能各是什么)
  3. foxmail使用技巧
  4. python实现DES算法
  5. Android之列表对话框
  6. Flask Flash
  7. C++ int string 转换
  8. Python 判断字符属于数字、字母、空格
  9. rds对mysql优化_RDS MySQL优化方案
  10. 数学问题(二):质数、质因子
  11. mysql median_在MySQL中使用MEDIAN和MAX,MIN和AVG功能
  12. pamac 安装 ros-noetic-desktop-full(AUR) 失败后如何清理残留的问题
  13. srand(time(0))函数的用法介绍
  14. 如何包装你的实验结果
  15. PaddleNLP实战:应用NeZha模型做微博情感6分类
  16. 常见网络聊天术语(中英文对照)
  17. go+vue——基于gin框架和gorm的web开发实战
  18. 【数据结构】图解七大排序
  19. Linq to Sql 语句全集
  20. java毕设项目教师教学质量评估系统(附源码)

热门文章

  1. Jmeter模拟不同带宽进行测试
  2. [译] 使用 Web3 和 Vue.js 来创建你的第一个以太坊 dAPP(第二部分)
  3. oracle 12.1的那些坑
  4. [转]JavaScript ES6 class指南
  5. Solr-5.3.0学习笔记(三)Manage Core
  6. C++ sizeof与strlen
  7. 【转】为什么要写技术博
  8. MYSQL批量按条件更新不同的数据
  9. 关于default constructor一个要注意的地方
  10. OpenCV 开闭运算