2010-01-22 17 views
1

我的應用程序正在使用工作流設計器rehosting讓最終用戶開發工作流程。我有一個可用的活動,需要用戶設置一些狀態。爲了實現這一點,在設計器中,我重寫Initialize(Activity)並顯示一個表單,然後用它在我的Activity中設置值。這用於設置活動最初添加時的狀態。我還在設計器中有一個雙擊事件處理程序,以防他們稍後需要編輯該狀態。當添加新的子Activity時,WorkflowView強制刷新

我現在有一種情況,根據表單中的值,我可能需要添加或刪除一個子活動。我已經成功地添加了這個活動,但並不總是讓它出現在設計師中。

當Initialize被調用時,沒有任何子活動。我可能需要添加一個子Activity。在這一點上,它工作正常,並在設計師中出現。稍後通過雙擊進行編輯時會出現問題。在我的設計師中,我重寫了OnActivityChanged來檢測這個。我做同樣的電話來添加一個孩子,但設計師沒有得到更新。奇怪的是,當情況是這樣的孩子被刪除,視圖更新正常。

使用調試器進行調試顯示,我正在向Activities集合添加一個子活動。通常,當我在更新視圖時遇到問題時,我可以調用IComponentChangeService.OnComponentChanged,但似乎無法找到使其工作的方法。

有什麼建議嗎?

看起來我需要在設計器中使用RemoveActivities和InsertActivities。看起來好像設計師不會聽「活動」列表中的列表更改事件。有誰知道這是如何工作的?

回答

0

對於我的情況,我確定我需要使用RemoveActivities和InsertActivities。

0

你在OnActivityChanged事件處理程序中試過這個嗎?

TypeDescriptor.Refresh(e.Activity); 
+0

謝謝你的建議克里斯。我已經通過使用RemoveActivities和InsertActivities來完成它的工作,但如果遇到類似的問題,我會記住你的建議。 – Dan 2010-01-27 22:55:04