MvvmCross从ViewModel事件导航

我从这里读到了“ViewModel to ViewModel navigation”和“View Model Lifecycle”: https : //github.com/MvvmCross/MvvmCross/wiki/ViewModel–to-ViewModel-navigation https://github.com/MvvmCross/ MvvmCross /维基/视图模型,生命周期

我可以使用Init()或Start()方法来初始化当前的ViewModel。 此外,我可以将参数从一个ViewModel传递到另一个ViewModel并在Init()方法中接收它。

所以我的问题是:当我创建Windows手机应用程序时,我使用了“NavigateTo”和“NavigateFrom”方法。 Init()类似于“NavigateTo”。 但我没有找到mvvmcross中“NavigateFrom”方法的替代方法,当我通过“关闭(此)”或使用Windows手机上的后退按钮“返回”时,我不知道如何重新加载数据。

你能暗示我吗?

提前致谢!

更新

我发现Messenger(MvvmCross插件)可以帮助我通知第一个ViewModel,当另一个第二个ViewModel更改了数据时(例如将一个项目添加到一个集合中)。 因此,当第二个ViewModel添加一个新项时,首先ViewModel重新加载OnCollectionChanged(CollectionChangedMessage obj)方法中的数据。

Stuart展示了如何在NPlus1DaysOfMvvmCross / N-13-CollectABull-Part2中使用此插件。 链接到这里: https : //github.com/MvvmCross/NPlus1DaysOfMvvmCross/tree/master/N-13-CollectABull-Part2

但我没有找到mvvmcross中“NavigateFrom”方法的替代方法,当我通过“关闭(此)”或使用Windows手机上的后退按钮“返回”时,我不知道如何重新加载数据。

通常,您不需要在此事件中重新加载数据 – 因为ViewModel已经从前一个导航向前创建并初始化。

如果您确实想在导航时刷新ViewModel,那么N = 42video中的IVisible模式可能有所帮助,但您需要自己将其添加到View和ViewModel中 – 请参阅http://slodge.blogspot .co.uk /十一分之二千零一十三/ N42-是-我-视图模型可见,可以-I-kill.html