【发布时间】:2012-04-17 12:33:53
【问题描述】:
我的应用程序中有一个重新托管的设计器,它与我的自定义活动都可以正常工作。当用户设计他们的工作流程时,他们会像往常一样将某些活动拖到设计器表面。但是,在用户从下拉框中(不在设计器中)选择某些值后,我想从设计图面上删除某些活动,这样它们就无法保存和执行。
我已经尝试了很多不同的方法来做到这一点,使用 WorkflowInspectionServices 对象来导航 ModelItemTree,获取父序列活动并从它的活动集合中删除自定义活动,但我似乎无法让它工作。
有没有人真的成功地从代码中重新托管的设计器表面中删除了一个活动(不仅仅是右键单击它并选择删除!!)。
要明确...这不是在执行工作流时,而是在重新托管的设计器中进行设计时。
【问题讨论】:
-
我敢打赌,您不会从 ModelItem 中删除子项,而是从 ModelItem 包装的 Activity 树中删除。即,您执行“GetCurrentValue”,将返回值转换为您的 Activity 类型,然后以这种方式删除子项。那是行不通的,因为 Activity 树的 ModelItem 表示将不同步。您必须通过获取包含子项的属性的 ModelItem 来删除子项,然后将其清除。
-
您好。感谢那。你是对的,这正是我正在做的。我确切地知道你来自哪里,但只是不知道如何实际做到这一点。这是否意味着我可以从需要清除的父活动(序列?)中获取 ModelItem?抱歉,对这一切都很陌生...
-
让我看看我是否可以编写一些代码,我会回答的。
标签: workflow-foundation-4 workflow-rehosting