2009-09-02 73 views
2

自定義活動我想更好地瞭解什麼可以自定義活動在設計時完成在WF 4.0功能和侷限性的輸入數據。更具體地說,我們可以在自定義活動中執行哪些操作,以便我們可以讓設計人員在設計時以定製方式進行交互,以指定有關活動的詳細信息/數據。在設計時(WF 4.0)

例如,我想創建一個活動A,當工作流設計器將該活動放入設計器(Visual Studio設計器或獨立應用程序中的重新託管設計器)中的工作流中時,.NET對話框可以讓用戶輸入數據(例如通過「打開文件」對話框指定文件)並驗證輸入數據,即在某個特定文本框聚焦或輸入數據(事件處理程序)時運行某些代碼。

這可以完成並存儲在工作流程XAML文件中嗎?

請注意,所有的這種能力是在工作流設計所要求的工作流程實際上是被設計的時候。

謝謝。

回答

1

WF4設計者非常有能力。您可以將控件添加到設計器中,允許最終用戶直接與設計圖面交互,而無需使用屬性表。您還可以向活動添加驗證,以檢查輸入的數據是否可接受。所有這些都是在C#或VB代碼的活動級別完成的,而不是在工作流級別。我不知道有關事件時的活動下降,但相信他們也支持(他們WF3其中至少和我期望得到發揚光大。

1

有幾個方法,你可以在當活動被添加到您的工作流程掛鉤到事件通知。

第一個正在監聽WorkflowDesigner類的TextChanged事件(B eta1)或者我認爲將會有一個ModelChanged事件(在Beta2中),這更可靠。這是東西已在您的工作流程中發生變化的通知。沒有什麼特別的東西,只是一些東西,但是你可以用它來觸發你的工作流程並尋找新的未配置的活動。

第二種可能性是服用的事實,即每個ModelItem(它是設計時的包裝爲活動)實現INotifyPropertyChanged優勢。您可以不聽整個工作流程的變化,而是傾聽特定屬性的變化,比如While活動的「Body」 - 然後當屬性被初始化爲保持新活動時,對變化做出響應。

第三種可能性是,你是在有趣的活動有一個自定義設計(你寫的) - 這聽起來像這種情況下比賽,你在想什麼。在這裏,您可以完全自定義活動的外觀。自定義設計器實際上只是一個WPF控件。您可以使用設計WPF應用程序時應用的相同事件和數據綁定和驗證技術,或者響應正常的WPF事件。如果你願意,你當然可以彈出對話框。

至於存儲在XAML文件,當然自定義活動被保存在XAML文件及其所有配置的屬性一起 - 就像普通的活動。當您想要再次加載XAML文件時,您需要提供有關包含XAML文件引用的活動的程序集的上下文信息。在VS中,這與添加組件引用一樣簡單,在重新託管場景中,您可以編寫一些代碼來執行此操作。

您可能會在以下這些文章中找到更多或關於.NET Framework 4的相似問題:Workflow Foundation - Beta 1論壇