2013-07-10 36 views
1

我使用MvvmCross庫進行跨平臺移動開發。從另一頁返回後重新初始化ViewModel

我已經獲得了聊天列表頁面(ChatListPageViewModel)。它在Init()方法中從容器中加載聊天。

從此頁面您可以導航到將新聊天添加到容器(AddChatPageViewModel)的頁面。

添加聊天時,我在AddChatPageViewModel中調用Close(this)。所以,我自動導航到ChatListPageViewModel,但此時不調用Init()方法,我無法刷新我的數據。我該如何處理?

回答

1

初始化保留用於初始化新的視圖模型 - 它不是專爲刷新現有模型而設計的。

不過,我認爲可以實現應用程序的類型流向你正在尋找的:

  • 從AddChatViewModel發送消息時您添加聊天
  • 或編寫自定義的OnNavigatedTo,ViewDidAppear,的onResume處理和使用這些調用你的聊天視圖模型自定義方法的第一種方案的

一個例子是CollectABull N + 1個樣品中 - https://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-13-CollectABull-Part2 - 當收集服務的變化,然後它廣播允許訂閱ViewModel更新的消息 - 有關演練視頻的信息,請參見http://mvvmcross.wordpress.com

+0

我在想像事件聚合器與訂閱者和通知者,但它似乎不是最好的方式。但如果是這樣,那好,謝謝! 而且我會定義想想處理OnNavidatedTo,ViewDidAppear和OnResume。這看起來是解決問題的最佳方式 – xSeder