2011-05-12 89 views
3
  1. MVVM消息傳遞與RaisePropertyChanged有什麼區別。MVVM消息傳遞與RaisePropertyChanged <T>

  2. 我想在視圖模型B中的一個屬性,當視圖模型B中的屬性更改時,哪種方法是更好的使用 - 消息或RaisePropertyChanged廣播?

感謝, 尼基爾

回答

3
  1. 消息解耦您的視圖模型。這就像一個推文,你發送一條消息到空中,有人可以閱讀,或有人可以註冊聽它。用戶界面使用PropertyChanged來了解某些內容已更改並重新繪製值。

  2. 消息傳遞絕對是最好的選擇。 MVVM燈具有內置廣播消息的選項。您可以使用mvvminpc代碼片段。

令人驚訝的是,您的文章沒有得到更快回答。也許這個答案對那裏的人仍然有用。

1

,關注@凱文的帖子:

消息確實是用於解耦交際。這意味着一旦發送郵件一個或多個收件人 - 誰已註冊他們對特定郵件類型的興趣 - 被通知。

一般來說,我使用INotifyPropertyChanged當視圖和視圖模型之間的交際而言(通過數據綁定)和消息時,我想多視圖模式之間或向上從視圖模型的視圖和數據綁定是通信不關心。

在視圖模型中接收消息時,請確保您撥打CleanupMessenger取消註冊。如果您在視圖中處理消息 - 沒有Cleanup可用 - 請註冊Unloaded event並從那裏撥打Messenger.Unregister(this)

0

消息應在解決特定問題時使用。如果你在任何地方使用它,你的應用程序變得難以維護,並且以後會理解代碼