2012-02-08 11 views
-1

実行する前に、WF4フローチャートのいくつかのステップを無効にしたいと思います。 私のフローチャートは非常にシンプルなもので、開始ノードと、それぞれにWriteLineアクティビティを持つ3つのシーケンス(「ステップ1」、「ステップ2」、「ステップ3」)です。フローチャート上のステップを無効にする

コンソールに「ステップ1」と書かなければならないように、「ステップ2」シーケンスを抑制したいと思います。\ n「ステップ3」、ここに私のコードがあります(シーケンシャルワークフローでうまく動作しますが、 !!)

Activity a = new Activity1(); 
Activity customActivity = Customize(a); 
WorkflowInvoker.Invoke(customActivity); 
Console.ReadLine(); 

static System.Activities.Activity Customize(System.Activities.Activity scheme) 
{ 
    var activities = WorkflowInspectionServices.GetActivities(scheme); 
    var rootActivity = activities.FirstOrDefault(); 

    if (rootActivity is Sequence) 
    { 
     var seqActivities = ((Sequence)rootActivity).Activities; 
     var badActivity = seqActivities.FirstOrDefault(a => a.DisplayName == "Step2"); 
     seqActivities.Remove(badActivity); 
    } 

    if (rootActivity is Flowchart) 
    { 
     var seqActivities = ((Flowchart)rootActivity).Nodes.Cast<FlowStep>().ToList(); 
     var badActivity = seqActivities.FirstOrDefault(a => a.Action.DisplayName == "Step2"); 
     bool b = ((Flowchart)rootActivity).Nodes.Remove(badActivity); 
    } 

    return scheme; 
} 

あなたの助けを頼りに!

答えて

1

これには2通りの方法があります。

  1. ActivityXamlServices.Load()を使用して動的にXAMLを読み込む場合は、実際にロードして実行する前にXAMLを更新できます。最後に、XAMLは単なるXMLです。
  2. アクティビティをFlowDecisionアクティビティ内にラップすることができ、いつでも実行することができます。
+0

返信用txk :) – SebFrance

関連する問題