从另一个页面返回后重新初始化ViewModel

时间:2013-07-10 21:40:21

标签: mvvm viewmodel mvvmcross

我使用MvvmCross库进行跨平台移动开发。

我有一个包含聊天列表的页面(ChatListPageViewModel)。它在Init()方法中加载容器中的聊天。

在此页面中,您可以导航到向容器添加新聊天的页面(AddChatPageViewModel)。

添加聊天时,我在AddChatPageViewModel中调用Close(this)。所以,我自动导航到ChatListPageViewModel,但此时没有调用Init()方法,我无法刷新我的数据。我怎么处理这个?

1 个答案:

答案 0 :(得分:1)

初始化保留用于初始化新的视图模型 - 它并不是真正用于刷新现有模型的。

但是,我认为您可以通过以下方式实现所需的应用程序流类型:

  • 添加聊天时从AddChatViewModel发送消息
  • 或编写自定义OnNavigatedTo,ViewDidAppear,OnResume处理程序并使用这些处理程序在聊天视图模型上调用自定义方法

第一个方案的一个例子是CollectABull N + 1样本 - https://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-13-CollectABull-Part2 - 当收集服务发生变化时,它会广播一条允许订阅的ViewModel更新的消息 - 请参阅http://mvvmcross.wordpress.com了解演练视频。

相关问题