动态添加活动
private void aaa(object sender, EventArgs e)
{
Console.WriteLine("Fix Activity");
WorkflowChanges changes = new WorkflowChanges(this); //声明一个修改活动的代理对象
CodeActivity activity = new CodeActivity();
activity.ExecuteCode += new EventHandler(activity_ExecuteCode);
CompositeActivity subContainer = (CompositeActivity)changes.TransientWorkflow.Activities["sequenceActivity1"]; //从代理对象中取出容器
subContainer.Activities.Add(activity);
this.ApplyWorkflowChanges(changes); //提交修改
}
动态添加子流程
//动态添加的
void activity_ExecuteCode(object sender, EventArgs e)
{
WorkflowChanges changes = new WorkflowChanges(this);
SequenceActivity workflowContainer = (SequenceActivity)changes.TransientWorkflow.GetActivityByName("sequenceActivity2");
InvokeWorkflowActivity subWorkflow = new InvokeWorkflowActivity("subWorkflow");
subWorkflow.TargetWorkflow = typeof(Workflow3); //子流程
workflowContainer.Activities.Add(subWorkflow);
this.ApplyWorkflowChanges(changes);
}
动态修改条件
WorkflowChanges wfchange = new WorkflowChanges(this);
CompositeActivity comactivity = wfchange.TransientWorkflow;
RuleDefinitions ruleDefinitions = (RuleDefinitions)comactivity.GetValue(RuleDefinitions.RuleDefinitionsProperty);
RuleConditionCollection conditions = ruleDefinitions.Conditions;
RuleExpressionCondition condition1 = (RuleExpressionCondition)conditions["条件1"];
(condition1.Expression as CodeBinaryOperatorExpression).Right = new CodePrimitiveExpression(1);
this.ApplyWorkflowChanges(wfchange);

浙公网安备 33010602011771号