可以在XAML中声明WF4通用活动吗?

时间:2010-08-05 22:31:50

标签: xaml android-activity generics workflow-foundation-4

我有一个Workflow 4活动,可以在从我的基类继承的任意数量的类上运行。因此,活动自然是通用的。与ForEach或AddToCollection活动类似,我的活动需要一个类型参数。

我的问题是:我可以使用XAML在设计器中创建此活动吗?请记住,这是一个复合活动,因此设计师似乎是最佳选择。

如果我要在代码中创建它,它将如下所示:

public class MyGenericActivity<T> : Activity where T : MyBaseClass
{
   //args would go here
   public MyGenericActivity()
   {
      this.Implementation = () => new Sequence
      {
         Activities = { //... }
      };
   }
}

虽然这个解决方案可行,但维护肯定会很痛苦,而且你不会以这种方式获得设计师的任何“细节”。

2 个答案:

答案 0 :(得分:1)

XAML堆栈可能支持它(不确定),但在VS 10中,工作流设计师绝对不允许你这样做。

答案 1 :(得分:0)

不确定你能不能,但我怀疑不行。但即使你能为什么这么做? xaml活动只是标记和组合,没有代码,那么你将如何使用泛型类型。

使用您的活动的人的设计时间体验与您创建活动的方式无关。只需添加一名设计师,即可为用户提供您喜欢的任何设计时间体验。您可以使用WorkflowItemsPresenter让他们添加多个子活动。