Мне удалось восстановить связь между двумя действиями после того, как другой (который существовал до этого между ними) был удален.WF4 refresh workflow designer
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 прекрасно работает до сих пор, но даже если подключение производится назад, я не могу представить себе его в конструкторе рабочих процессов. Если я расширяю или сворачиваю действие или любую другую операцию, которая обновляет рабочий процесс, эта красивая стрелка возвращается туда, но .. есть ли способ сделать это программно и вызвать эту перерисовку сразу после удаления одного действия?
Спасибо за ваш ответ, я начну читать об этом. Однако в этом случае я просто попытался изменить отображаемое имя. Действительно, событие ModelChanged добавляется, но макет конструктора не обновляется. Из того, что я видел, он обновляется, когда я перемещаюсь по дереву, или ... чтобы быть более кратким, когда я расширяю и сворачиваю блок-схемы. –
Хорошо, я получил его, еще раз спасибо. Я неправильно понял то, что вы мне сказали. Это работает отлично. Я получаю ModelItem для своего FowStep и вызываю .Properties ["Next"]. SetValue (((FlowNode) ((containerAsFlowchart.Nodes [i + 1] как FlowStep))) Может быть, я задаю слишком много, но у меня есть один Я начинаю поиск с ModelService.Find и получаю все FlowStep в дизайнере рабочего процесса, и только после того, как я повторяю эту коллекцию и ищу подходящее имя. там более простой способ? –