4

例如,如果您创建了自己的称为Run10Times的活动,该活动运行了其子活动10次,您是否可以拥有一个设计器,其中包含用户可以将子活动放入的画布?如何创建一个可以包含儿童活动的活动设计器?

我知道如何创建一个标准的活动设计器,并添加一个表达式文本框,但不知道如何添加一个用户可以放置子活动的画布。

回答

6

您需要将WorkflowItemPresenter控件添加到活动设计器。

假设你有这样一个活动:

[Designer(typeof(MyCompositeDesigner))] 
public class MyComposite : NativeActivity 
{ 
    public Activity Body { get; set; } 

    protected override void Execute(NativeActivityContext context) 
    { 
     context.ScheduleActivity(Body); 
    } 
} 

您将创建设计师是这样的:

<sap:ActivityDesigner x:Class="WorkflowConsoleApplication3.MyCompositeDesigner" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"> 
    <StackPanel> 
     <TextBlock Text="Activity to execute:" 
        Margin="6"/> 
     <sap:WorkflowItemPresenter Item="{Binding Path=ModelItem.Body, Mode=TwoWay}" 
            HintText="Drop Activity" 
       /> 
    </StackPanel> 
</sap:ActivityDesigner> 
相关问题