Как я узнаю, что действие было удалено или изменено в конструкторе рабочих процессов? - PullRequest
1 голос
/ 19 октября 2011

Как узнать, было ли действие удалено или переставлено в конструкторе рабочих процессов?незагруженное событие активности запускается в обоих случаях

Ответы [ 2 ]

1 голос
/ 01 апреля 2013

Дейв ответ частично верен. Когда вы перемещаете свою активность, также вызывается событие удаления, так что проверка будет верна для обоих случаев. Я использую модель элемента Item.Parent. modelItem.Parent имеет значение null, когда действие фактически удалено, и! = null, когда оно только перемещено.

0 голосов
/ 01 декабря 2012

Вы сможете узнать, была ли активность удалена, используя следующее событие:

ModelService ms = workflowdesigner.Context.Services.GetService<ModelService>();
ms.ModelChanged += new EventHandler<ModelChangedEventArgs>(Designer_ModelServiceChanged);

Затем вы можете найти удаленные действия, выполнив что-то вроде:

private void Designer_ModelChanged( object sender, EventArgs e )
{
           //iterate through model items and find your activity
           if (null != eventArgs.ItemsRemoved)
           {
                foreach (ModelItem mi in eventArgs.ItemsRemoved)
                {
                    //find your activity
                }
            }
}

Ознакомьтесь с книгой Pro WF Windows Workflow в .NET 4, написанной Брюсом Буковичем

...