基于prism4.1的事件,主要分为一下几个步骤
1. 创建一个项目,供事件的触发和订阅方共同引用使用.
????a. 事件类继承自 CompositePresentationEvent<T>对象
???????
public class FundAddedEvent : CompositePresentationEvent<FundOrder> { }
?
??? 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<FundAddedEvent>().Publish(fundOrder);
?
3. 创建ModuleB项目,作为事件订阅者,需要引用第一步中创建的项目
??? 订阅的关键代码如下:
private SubscriptionToken subscriptionToken; //省略n行代码 FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); //已经订过,则先取消订阅 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