WF4.0 应用篇(四) IActivityToolboxService 自动化工具栏
WF4.0 应用篇(四) IActivityToolboxService 自动化工具栏
例子下载: https://files.cnblogs.com/foundation/IActivityToolboxServiceSample.rar
System.Activities.Presentation.IActivityToolboxService
在设计工作流的创时,
可以实现工具栏的上下文相关
如当一个Activity被添加到工作流中后,会自动在工具栏中显示与该Activity相关的Activity
当这个Activity从工作流中移除时,会自动在工具栏中隐藏相关的Activity
实现思路如下:
1.为Activity添加一个Designer
2.override Designer的 OnModelItemChanged方法
3.在 OnModelItemChanged方法内用IActivityToolboxService向工具栏添加关联的Activity
4.关联Activity的移除是自动完成的,不用代码
例
定义[myActivity],[myActivityOne],[myActivityTwo]
当向流程中添加[myActivity]时[myActivityOne],[myActivityTwo]自动出现在工具栏中
当这个[myActivity]从工作流中移除时,会自动在工具栏中隐藏[myActivityOne],[myActivityTwo]
myActivityOne myActivityTwo | 任意 |
myActivity | [System.ComponentModel.Designer(typeof(myActivityDesigner))] public sealed class myActivity : CodeActivity {
public InArgument<string> Text { get; set; }
protected override void Execute(CodeActivityContext context) { string text = context.GetValue(this.Text); } } |
myActivityDesigner | <sap:ActivityDesigner x:Class="IActivityToolboxServiceSample.myActivityDesigner" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation" xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"> <Grid>
</Grid> </sap:ActivityDesigner> |
public partial class myActivityDesigner { public myActivityDesigner() { InitializeComponent(); }
protected override void OnModelItemChanged(object newItem) {
base.OnModelItemChanged(newItem); System.Activities.Presentation.IActivityToolboxService toolboxService = (System.Activities.Presentation.IActivityToolboxService)this.Context.Services.GetService(typeof(System.Activities.Presentation.IActivityToolboxService));
toolboxService.AddCategory("myActivity自定义选卡"); toolboxService.AddItem("IActivityToolboxServiceSample.myActivityOne,IActivityToolboxServiceSample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" , "myActivity自定义选卡"); oolboxService.AddItem("IActivityToolboxServiceSample.myActivityTwo,IActivityToolboxServiceSample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" , "myActivity自定义选卡"); } } | |
IActivityToolboxServiceSample.myActivityOne,IActivityToolboxServiceSample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 的查看 |
使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)