2011-05-20 39 views
1

我有一個顯示兩個網格的「父」控件的ViewModel。第一個網格具有父級信息,第二個網格顯示所選父級的相關子級。帶子窗口和共享數據的Silverlight MVVM模式

這工作正常順利。但問題是我必須提供更新按鈕。點擊它後,用戶將看到所選父項的子項並選擇刪除它們。這是通過一個子窗口完成的,該子窗口包含顯示相關子項的相同網格,但網格處於「啓用」模式。

所以問題是什麼模式與MVVM使用: 1)獲取子窗口的數據? 2)在子窗口內成功更新後,更新父項?

感謝,

回答

2

你應當考慮以調解模式,使你無法控制的視圖模型和你的子窗口的視圖模型之間的通信。

請參閱this answer以獲得介體模式的基本概述。使用這種模式,您可以採取的一種方法是在單擊「更新」按鈕時發佈消息,該消息由顯示子窗口的偵聽器處理(該消息將攜帶子窗口數據,並在傳遞給數據上下文之前被顯示)。一旦成功更新,子窗口將發佈父節點偵聽的消息,並且此消息將攜帶更新父節點的信息。

您可能還想看看PRISM 4指導中的User Interaction Patterns部分。即使你不使用PRISM,也採用了通用的原則和方法。