首页 文章

MvvmCross从ViewModel事件导航

提问于
浏览
1

我从这里读到"ViewModel to ViewModel navigation"和"View Model Lifecycle":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”和“NavigateFrom”方法 . Init()类似于“NavigateTo” . 但我没有找到mvvmcross中“NavigateFrom”方法的替代方法,我不知道如何通过“关闭(此)”或使用Windows手机上的后退按钮“返回”时重新加载数据 .

你能暗示我吗?

提前致谢!

updated

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

  • 1

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

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

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

相关问题