您的位置:首页 > 其它

学习WF笔记9- 自定义活动中事件类型的属性(3)

2009-11-24 21:15 337 查看
在活动的属性窗口中有两种类型的属性,一种是在第2节讲到的普通属性,另外一种是事件类型的属性。用户可以通过该属性创建相应的事件,例如:利用Code活动的“ExecuteCode”属性来创建一个事件,开发人员可以在该事件中执行相应的业务操作。在自定义活动中创建事件类型属性与创建普通属性的方法基本相同,也是通过“DependencyProperty”属性来对事件类型的属性进行管理,而它所对应的属性类型不再是“String”或“int”,而是“event”类型的属性,其代码如下所示。

Public static DependencyProperty PrintEvent=DependencyProperty.Register(“Print”,typeof(EventHandler),typeof(Activity1));

[Description(“打印一个字符串”)]

[Browsable(true)]

Public event EventHandler Print

{

add{

base.AddHandler(Activity1.PrintEvent,value);

}

remove

{

base.RemoveHandler(Activity1.PrintEvent,value);

}

}

通过以上步骤就实现了一个事件类型属性的定义,但该属性还不能执行。用户必须重载父类的“Execute”方法,并通过“RaiseEvent”来加载相应“DependencyProperty”属性,其代码如下所示。

Protected override ActivityExecutionStatus Execute(ActivityExecutionContext context)

{

base.RaiseEvent(Activity1.PrintEvent,this,EventArgs.Empty);

return ActivityExecutionStatus.Closed;

}

创建自定义活动

用户可以使用以上代码创建自定义活动,编译成功后将它添加到工作流设计界面中,如图1所示,在属性窗口中通过“Print”属性创建一个可用于执行的事件“ExePrint”,其代码如下所示。

private void ExePrint(object sender,EventArgs e)

{

Console.Write(“自定义活动中定义的方法PrintEvent被执行!\r\n”);
}



图1

运行工作流项目,如图2所示,用户通过属性“Print”创建的事件“ExePrint”被执行



图2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: