我正在使用设计器重载示例,并试图将泛型类型放入工具箱中,但是我似乎无法使其正常工作。
我已经尝试过基于XAML:
<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sapt:ToolboxItemWrapper.ToolName>
System.Activities.Statements.ForEach
</sapt:ToolboxItemWrapper.ToolName>
</sapt:ToolboxItemWrapper>
和基于代码:
Type t = Type.GetType("System.Activities.Statements.Foreach, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
ToolboxItemWrapper w = new ToolboxItemWrapper(t);
category.Add(w);
但是它们似乎都不起作用。有什么建议?
最佳答案
您遗漏了不起作用的内容,但是我想您不能在设计器的ForEach中添加子活动。
如果是这种情况,则是因为Body属性是ActivityAction而不是Activity,需要对其进行初始化。有几种方法可以做到这一点,但是最简单的方法是从设计器中的ForEachWithBodyFactory开始,然后将其拖动到设计图面上。
以下代码对我有用。我可以将ForEach拖到工作流上并向其添加子项。
var cat = new ToolboxCategory("Standard Activities");
cat.Add(new ToolboxItemWrapper(typeof(ForEachWithBodyFactory<>)));