Mvvm 从其他页面返回后重新初始化ViewModel
我使用MvvmCross库进行跨平台移动开发 我有一个带有聊天列表的页面(ChatListPageViewModel)。它通过Init()方法从容器中加载聊天 从该页面,您可以导航到将新聊天添加到容器的页面(AddChatPageViewModel)Mvvm 从其他页面返回后重新初始化ViewModel,mvvm,viewmodel,mvvmcross,Mvvm,Viewmodel,Mvvmcross,我使用MvvmCross库进行跨平台移动开发 我有一个带有聊天列表的页面(ChatListPageViewModel)。它通过Init()方法从容器中加载聊天 从该页面,您可以导航到将新聊天添加到容器的页面(AddChatPageViewModel) 添加聊天时,我在AddChatPageViewModel中调用Close(this)。所以,我自动导航到ChatListPageViewModel,但此时未调用Init()方法,并且无法刷新数据。如何处理这个问题?Init是为初始化新的viewmo
添加聊天时,我在AddChatPageViewModel中调用Close(this)。所以,我自动导航到ChatListPageViewModel,但此时未调用Init()方法,并且无法刷新数据。如何处理这个问题?Init是为初始化新的viewmodels而保留的,它并不是为刷新现有的viewmodels而设计的 但是,我认为您可以通过以下方式实现所需的应用程序流类型:
- 添加聊天室时从AddChatViewModel发送消息
- 或者编写自定义OnNavigatedTo、ViewDidDisplay和OnResume处理程序,并使用这些处理程序在聊天视图模型上调用自定义方法
第一种方案的一个例子是CollectABull N+1示例——当采集服务更改时,它会广播一条消息,允许订阅的ViewModels更新-请参阅演练视频。Init保留用于初始化新的ViewModels-它并不是真正用于刷新现有的ViewModels 但是,我认为您可以通过以下方式实现所需的应用程序流类型:
- 添加聊天室时从AddChatViewModel发送消息
- 或者编写自定义OnNavigatedTo、ViewDidDisplay和OnResume处理程序,并使用这些处理程序在聊天视图模型上调用自定义方法
第一种方案的一个例子是CollectABull N+1示例——当采集服务发生变化时,它会广播一条消息,允许订阅的ViewModels进行更新——请参阅演练视频。我曾考虑过使用订阅服务器和通知器的事件聚合器,但这似乎不是最好的方法。但如果是的话,没关系,谢谢!我肯定会考虑处理OnNavidatedTo、viewdide和OnResume。这看起来是解决这个问题的最好办法。我在考虑使用订阅服务器和通知服务器的事件聚合器,但这似乎不是最好的办法。但如果是的话,没关系,谢谢!我肯定会考虑处理OnNavidatedTo、viewdide和OnResume。这似乎是解决问题的最好办法