そのような場面では IActivityTemplateFactory インターフェースを継承したクラスを用意し、デザイナにドロップした際に複数アクティビティを自動で展開させる事が可能です。
上記サンプルは、ドロップした際に Sequence アクティビティを作成し、その内部に Delay アクティビティと WriteLine アクティビティを作成するものとなっています。同時に Sequence アクティビティの変数を二つ作成しています。1: Imports System.Activities
2: Imports System.Activities.Presentation
3: Imports System.Activities.Statements
4:5: Public Class TestActivityFactory6: Implements IActivityTemplateFactory
7:8: Public Function Create(target As System.Windows.DependencyObject) As System.Activities.Activity Implements System.Activities.Presentation.IActivityTemplateFactory.Create9: Dim resultActivity As New Sequence With {.DisplayName = "一連の操作"}10: '内部のアクティビティを追加
11: Dim childActivity1 As New Delay With {.DisplayName = "少し待機", .Duration = New TimeSpan(0, 0, 5)}12: Dim childActivity2 As New WriteLine With {.DisplayName = "文字を表示", .Text = "待機しました!"}13: resultActivity.Activities.Add(childActivity1)14: resultActivity.Activities.Add(childActivity2)15: '変数の追加
16: resultActivity.Variables.Add(New Variable(Of String)("追加する変数"))17: resultActivity.Variables.Add(New Variable(Of String)("追加する変数2", "初期値"))18:19: Return resultActivity
20: End Function21:22: End Class
このように自動で複数のアクティビティや変数を作成できますので、固定的な設定などを自動化する事が可能です。
0 件のコメント:
コメントを投稿