当前位置: 代码迷 >> Web前端 >> prism4.1中施用事件
  详细解决方案

prism4.1中施用事件

热度:348   发布时间:2012-06-26 10:04:13.0
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

  相关解决方案