MvvmCross从ViewModel事件导航

时间:2014-04-13 21:12:46

标签: c# windows-phone mvvmcross

我读到" ViewModel到ViewModel导航"和"查看模型生命周期"从这里: https://github.com/MvvmCross/MvvmCross/wiki/ViewModel--to-ViewModel-navigation https://github.com/MvvmCross/MvvmCross/wiki/View-Model-Lifecycle

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

所以我的问题: 当我创建Windows手机应用程序时,我使用了" NavigateTo"和#34; NavigateFrom"方法。 Init()类似于" NavigateTo"。 但我没有找到#34; NavigateFrom" mvvmcross中的方法,我不知道如何移动数据时重新加载数据'通过"关闭(这)"或使用Windows Phone上的后退按钮。

你可以暗示我吗?

提前致谢!

更新

我发现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

1 个答案:

答案 0 :(得分:1)

  

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

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

如果您确实想在导航时刷新ViewModel,那么N = 42视频中的IVisible模式可能有所帮助,但您需要自己将其添加到View和ViewModel中 - 请参阅http://slodge.blogspot.co.uk/2013/11/n42-is-my-viewmodel-visible-can-i-kill.html