我已经成功地重新建立了两个活动之间的链接(在它们之间存在之前)已被删除。
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到目前为止工作正常,但即使重新连接,我也无法在工作流设计器中将其可视化。如果我扩展或折叠一个活动,或任何其他刷新工作流程的操作,那个漂亮的箭头会回到那里但是..有没有办法以编程方式执行此操作,并在删除一个活动后直接触发重新绘制?
答案 0 :(得分:1)
要让设计师看到更改,您可以直接修改其ModelItem。
var modelItem = Designer.Context.Services.GetService<ModelService>().Root;
// Do changes through modelItem ...
例如,要更改根活动的DisplayName:
modelItem.Properties["DisplayName"].Value = "New Name";
ModelItem
所做的是将工作流的每个部分保持在不可知模型结构中,从复杂类型到简单整数。设计师自己使用该模型将工作流程打印到屏幕等(读取参数,变量等)。
使用调试器并观看模型以了解更多信息。