随笔 - 234, 文章 - 12, 评论 - 1671, 阅读 - 74万
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

[译]IActivityToolboxService

Posted on   生鱼片  阅读(1658)  评论(1编辑  收藏  举报

原文地址:http://blogs.msdn.com/kushals/archive/2009/09/16/iactivitytoolboxservice.aspx

在工作流的创作过程中,客户都希望他们的工具箱是上下文相关的。例如一个特定的活动被添加到工作流中,然后确保需要在工具箱中显示几个其他的活动,或者
活动从工作流中移除时,工具箱也要根据领域的需求做出适当的反应。

当然在重新宿主的工作流设计器中,这些都是很容易做到的,因为你可以控制工具箱控件并且能确保其根据工作流中的模型变化而更改。

然而,在VS中工具箱是一个特定的控件,我们需要借助IActivityToolboxService来完成该目的:

public interface IActivityToolboxService 
    { 
        void AddCategory(string categoryName); 
        void RemoveCategory(string categoryName); 
        void AddItem(string qualifiedTypeName, string categoryName); 
        void RemoveItem(string qualifiedTypeName, string categoryName); 
        IList<string> EnumCategories(); 
        IList<string> EnumItems(string categoryName); 
    }

这个API的自解释是很漂亮的。

我还附有一个最基本的示例,如果特定活动设计器具有OnModelItemChanged事件,当该事件触发时,我们就可以使用IActivityToolboxService来编辑VS中的工具箱项。OnModelItemChanged事件在自定义活动拖放到工作流上时触发。

还请注意,从一个特定的工作流选项卡上的删除项目,起初应当是使用IActivityToolboxService 添加的。 这就意味着,对于Workflow1.xaml你不能删除任何开箱即用的活动。 它的工作的方式是,您首先添加自定义的活动,然后删除它们,具体取决于您目前的上下文所需。

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
历史上的今天:
2008-11-21 WF中的跟踪服务(2):使用SqlTrackingService
2008-11-21 WF中的跟踪服务(1):Sql跟踪数据库表,视图,存储过程等相关说明
点击右上角即可分享
微信分享提示