基于prism4.1的事件,主要分为一下几个步骤
1. 创建一个项目,供事件的触发和订阅方共同引用使用.
a. 事件类继承自 CompositePresentationEvent
public class FundAddedEvent : CompositePresentationEvent{ }
b. T 为事件触发或订阅时,传递的数据对象
public class FundOrder { public string CustomerId { get; set; } public string TickerSymbol { get; set; } }
2. 创建ModuleA项目,做为事件触发者,需要引用第一步中创建的项目
触发事件的关键代码如下:
//构造事件触发传递的数据 FundOrder fundOrder = new FundOrder(); fundOrder.CustomerId = View.Customer; fundOrder.TickerSymbol = View.Fund; //触发事件 eventAggregator.GetEvent().Publish(fundOrder);
3. 创建ModuleB项目,作为事件订阅者,需要引用第一步中创建的项目
订阅的关键代码如下:
private SubscriptionToken subscriptionToken; //省略n行代码 FundAddedEvent fundAddedEvent = eventAggregator.GetEvent(); //已经订过,则先取消订阅 if (subscriptionToken != null) { fundAddedEvent.Unsubscribe(subscriptionToken); } //订阅事件 subscriptionToken = fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
详细代码在prism4.1的安装包中有路径为: Prism4.1_Source\Source\Quickstarts\EventAggregation
附prism4.1下载地址: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28950