2011-04-05 39 views
5

我正在嘗試使用MVVMLight和Windows Phone 7,並且迄今爲止發現它相對容易。我無法理解的一件事就是產生新的子窗口/視圖。例如:如果我想創建/導航到新視圖以允許用戶編輯項目,那麼當數據庫返回時從數據庫中刷新項目列表,是否應爲每次激活視圖添加某種處理程序,或者我可以導航到編輯視圖,然後在視圖關閉時觸發回調(NavigationService.GoBack被調用)。MVVM Light - 子視圖和對話框

+0

我刪除了我的答案,因爲我沒有注意並沒有看到它是WP 7。 – dugas 2011-04-06 20:40:32

回答

3

我使用的是Messaging框架。讓MainViewModel訂閱一條應該使其刷新的消息,然後從該子頁面發出該消息。仍在記憶中的MainViewModel將聽到該消息並能夠作出響應。我有這個在我的博客在http://chriskoenig.net/2010/07/05/mvvm-light-messaging/樣品,但請注意,您也可以創建自己的自定義消息(我親自做這一切的時候),然後就人工培養他們:

// In MainViewModel 
Messenger.Default.Register<ChildProcessCompleteMessage>(this,() => RefreshData()); 

// In ChildViewModel 
Messenger.Default.Send<ChildProcessCompleteMessage>(new ChildProcessCompleteMessage()); 

這是一個模式我在我的應用程序中使用了相當多的功能來允許視圖模型之間的通信。我不確定這是否完全回答你的問題,所以讓我知道你是否需要更多信息。