gpt4 book ai didi

workflow-foundation-4 - WF4 重新托管设计器 OnActivityAdded 事件?

转载 作者:行者123 更新时间:2023-12-01 02:46:36 27 4
gpt4 key购买 nike

我正在考虑重新托管工作流设计器。我希望能够在用户向设计器 Canvas 添加事件时运行一些代码。当用户在设计时添加事件时是否会触发事件?或者是否有关于我可以消费的事件的事件?谢谢!

最佳答案

对于任何可能偶然发现这一点的人,这就是我发现的......

首先,在创建工作流设计器时,您需要订阅 ModelChanged 事件。

        _workflowDesigner = new WorkflowDesigner();
_workflowDesigner.Load(new Sequence());

ModelService ms = _workflowDesigner.Context.Services.GetService<ModelService>();
if (ms != null)
ms.ModelChanged += new EventHandler<ModelChangedEventArgs>(ms_ModelChanged);

我的事件处理程序看起来像这样......
    void ms_ModelChanged(object sender, ModelChangedEventArgs e)
{
if (e.ItemsAdded != null && e.ItemsAdded.Count<ModelItem>() == 1)
{
ModelItem item = e.ItemsAdded.FirstOrDefault<ModelItem>();
var test = item.GetCurrentValue() as MyActivityType;

if (test != null && test.Id == null)
{
//do whatever initialization logic is needed here
}
}
}

我需要感谢 this为我指明正确方向的来源。

需要注意的一件事 - 当您在模型中移动事件时,会引发两个事件,一个删除和一个添加。在这一点上,我不需要担心我是在添加还是移动事件,因为我可以判断它是否已被初始化,但是如果您需要知道是否真的向模型添加了某些内容,您可能需要跟踪这两个事件。

关于workflow-foundation-4 - WF4 重新托管设计器 OnActivityAdded 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6654943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com