我如何知道某个活动是否已在工作流程设计器中删除或重新定位?活动的卸载事件在两种情况下都会触发
答案 0 :(得分:1)
戴夫的回答是偏正的。当您移动活动时,也会调用remove事件,因此对于这两种情况,验证都是正确的。我使用activity的modelItem.Parent。 实际删除活动时,modelItem.Parent为null;如果刚刚移动,则为!= null。
答案 1 :(得分:0)
您应该能够通过使用以下事件找出活动是否已被删除:
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
}
}
}
查看由Bruce Bukovics撰写的“Pro WF Windows Workflow in .NET 4”一书