【发布时间】:2011-10-19 11:53:11
【问题描述】:
我如何知道活动是否已在工作流设计器中被删除或重新定位?活动的 unloaded 事件在两种情况下都会触发
【问题讨论】:
标签: workflow-foundation workflow-foundation-4 workflow-activity
我如何知道活动是否已在工作流设计器中被删除或重新定位?活动的 unloaded 事件在两种情况下都会触发
【问题讨论】:
标签: workflow-foundation workflow-foundation-4 workflow-activity
戴夫的回答是部分正确的。当您移动活动时,还会调用删除事件,因此两种情况的验证都是正确的。我使用活动的modelItem.Parent。 实际删除活动时,modelItem.Parent 为 null,刚移动时为 != null。
【讨论】:
您应该能够通过使用以下事件来确定某个活动是否已被删除:
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 一书
【讨论】: