WF4刷新工作流设计器

本文关键字:工作流 刷新 WF4 | 更新日期: 2023-09-27 18:25:28

在删除另一个活动(之前存在于两个活动之间)后,我成功地重新建立了两个活动间的链接。

         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工作得很好,但即使重新建立了连接,我也无法在工作流设计器中可视化它。如果我扩展或折叠一个活动,或任何其他刷新工作流的操作,那么这个漂亮的箭头就在后面,但是。。有没有任何方法可以通过编程来实现这一点,并在我删除一个活动后立即触发重新绘制?

WF4刷新工作流设计器

要使更改在设计器中可见,您必须直接编辑其ModelItem。

var modelItem = Designer.Context.Services.GetService<ModelService>().Root;
// Do changes through modelItem ...

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

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

ModelItem所做的是将工作流的每个部分都保持在一个不可知的模型结构中,从复杂类型到简单整数。该模型由设计者自己用来将工作流打印到屏幕上以及其他内容(读取参数、变量等)

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