2009-09-02 5 views
2

デザイン時にWF 4.0でカスタムアクティビティを使用してできることをよりよく理解したいと思います。具体的には、デザインアクティビティに関する詳細やデータを指定するために設計時にデザイナがカスタマイズされた方法で対話できるように、カスタムアクティビティで行うことができます。デザイン時にカスタムアクティビティにデータを入力する(WF 4.0)

たとえば、私はアクティビティAを作成したいと思います。ワークフローデザイナーがそのアクティビティをデザイナーのワークフロー(Visual Studioデザイナーまたは別のアプリケーションの再ホストデザイナー)に配置すると、.NETユーザがデータを入力したり(例えば、ファイルを開くダイアログからファイルを指定する)、入力データを検証する、つまり特定のテキストボックスがフォーカスされるかデータが入力されるたびに(イベントハンドラ)何らかのコードを実行するダイアログが表示されます。

これをワークフローXAMLファイルに保存して保存できますか?

実際にワークフローが設計されている場合、この機能はすべてワークフロー設計者に必要です。

ありがとうございました。

答えて

1

WF4デザイナーはかなり能力があります。設計者にコントロールを追加すると、エンドユーザーがプロパティシートを使用せずにデザインサーフェスと直接対話できます。アクティビティにバリデーションを追加して、入力されたデータが受け入れ可能かどうかを確認することもできます。これらのすべては、ワークフローレベルではなく、C#またはVBコードのアクティビティレベルで行われます。私は、アクティビティが中止されたときにもわからないけど、彼らもサポートされていると信じています(最低でもWf3のどこにいても、私はそれが繰り越されることを期待しています)。

1

このビデオでは、 )の活動がワークフローに追加されたときにイベント通知にフックすることができ、いくつかの方法があります

http://bloggersguides.net/media/p/188.aspx

1

.. ..これはuのに役立ちます願っていますが、設計時の値を置くことができるようにします。

最初のものは、WorkflowDesignerクラスのTextChangedイベントをリッスンしています(B私は、より信頼性の高いModelChangedイベント(Beta2)があると思います。これは何かがワークフローで変更されたという通知です。特に何もありませんが、これをトリガーとして使用してワークフローをトラバースし、未構成の新しい活動を探すことができます。

2つ目の可能性は、各ModelItem(アクティビティのデザインタイムラッパー)がINotifyPropertyChangedを実装しているという事実を利用しています。ワークフロー全体の変更をリッスンするのではなく、WhileアクティビティのBodyなどの特定のプロパティの変更をリッスンすることができます。新しいアクティビティを保持するためにプロパティが初期化されると、変更に応答します。

3つ目の可能性は、関心のあるアクティビティにカスタムデザイナー(あなたが書き込む)があり、このシナリオがあなたの考えているものと一致するように聞こえることです。ここでは、アクティビティの外観を完全にカスタマイズすることができます。カスタムデザイナーは実際にはWPFコントロールです。 WPFアプリケーションを設計する場合や、通常のWPFイベントに応答する場合と同じイベントおよびデータバインディングと検証のテクニックを使用できます。あなたは確かにダイアログをポップアップすることができます。

XAMLファイルに格納されているのはもちろん、カスタムアクティビティは、通常のアクティビティと同様に、すべての構成プロパティとともにXAMLファイルに保存されます。 XAMLファイルを再度ロードする場合は、XAMLファイルで参照されるアクティビティを保持するアセンブリに関するコンテキスト情報を提供する必要があります。VSではアセンブリ参照を追加するのと同じくらい簡単ですが、リホスティングのシナリオではこれを行うためのコードを少し書くだけです。

.NET Framework 4:Workflow Foundation - Beta 1 Forum

この詳細については、こちらをご覧ください。
関連する問題