prism4.1中使用事件

基于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

你可能感兴趣的:(事件)