WF4刷新工作流设计师

时间:2014-10-02 09:32:24

标签: c# workflow-foundation-4 workflow-foundation workflow-activity

我已经成功地重新建立了两个活动之间的链接(在它们之间存在之前)已被删除。

         if (containerAsFlowchart != null)
        {
            for (int i = 0; i < containerAsFlowchart.Nodes.Count; i++)
            {
                if (containerAsFlowchart.Nodes[i] is FlowStep)
                {
                    FlowStep fs = containerAsFlowchart.Nodes[i] as FlowStep;

                    if (fs.Next == null)
                    {
                        if (i < containerAsFlowchart.Nodes.Count - 1)
                        {
                            fs.Next = (FlowNode)((containerAsFlowchart.Nodes[i + 1] as FlowStep));
                        }
                    }

                }

            }
        }

Al到目前为止工作正常,但即使重新连接,我也无法在工作流设计器中将其可视化。如果我扩展或折叠一个活动,或任何其他刷新工作流程的操作,那个漂亮的箭头会回到那里但是..有没有办法以编程方式执行此操作,并在删除一个活动后直接触发重新绘制?

1 个答案:

答案 0 :(得分:1)

要让设计师看到更改,您可以直接修改其ModelItem

var modelItem = Designer.Context.Services.GetService<ModelService>().Root;

// Do changes through modelItem ...

例如,要更改根活动的DisplayName:

modelItem.Properties["DisplayName"].Value = "New Name";

ModelItem所做的是将工作流的每个部分保持在不可知模型结构中,从复杂类型到简单整数。设计师自己使用该模型将工作流程打印到屏幕等(读取参数,变量等)。

使用调试器并观看模型以了解更多信息。