首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套的ActivityDesigner执行

嵌套的ActivityDesigner执行
EN

Stack Overflow用户
提问于 2012-03-14 20:04:49
回答 2查看 151关注 0票数 0

我有两个具有各自ActivityDesigner的自定义NativeActivity (根和最终):

在根NativeActivity中,我有:

代码语言:javascript
复制
[ContentProperty("Body")]
[Designer(typeof(RootActivityDesigner))]
public class RootActivity : NativeActivity
{
  public Activity Body { get; set; }

  protected override void Execute(NativeActivityContext context)
  {
    if (this.Body != null)
    {
      context.ScheduleActivity(this.Body);
    }
  }
}

我最后得到的NativeActivity是:

代码语言:javascript
复制
[Designer(typeof(FinalActivityDesigner))]
public class FinalActivity : NativeActivity
{
  protected override void Execute(NativeActivityContext context)
  {
    //Do Stuff
  }
}

因此,当我创建一个新的工作流时,我首先拖动RootActivity,然后在Root Body中拖动其他活动,除了没有执行的FinalActivity之外,所有的工作都很好,所以"do stuff“不会命中。

怎么啦?

我也要为FinalActivity调用context.ScheduleActivity(this.Body);吗?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2012-03-14 21:11:25

FinalActivity位于树中的什么位置。从设计器上看,它看起来像是RootActivity的一部分,但它的源代码不包含对FinalActivity anywhere的引用。

票数 1
EN

Stack Overflow用户

发布于 2012-03-14 22:07:47

我不知道期末考试在哪里,也不知道期末考试是什么,但你得想办法安排一下。如果RootActivity是控制实体,那么您可能会这样做

代码语言:javascript
复制
public class RootActivity : NativeActivity
{
  public Activity Body { get; set; }
  public Activity Final { get; set; }

  protected override void Execute(NativeActivityContext context)
  {
    if (this.Body != null)
    {
      context.ScheduleActivity(this.Body, OnBodyComplete);
    }
  }
    // callback fired after Body completes execution
    private void OnBodyComplete(NativeActivityContext context, 
                                ActivityInstance completedInstance)
    {
        context.ScheduleActivity(Final);
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9701620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档