棱镜101:导航

Xamarin Forms的最佳MVVM框架:)…老实说,不要相信我,相信这个人

我无法在一个博客文章中涵盖PRISM必须提供的所有内容,因此,我将集中介绍我最喜欢的功能之一: 导航!

导航

这就是在不使用MVVM框架的情况下处理移动应用程序中导航的感觉

这就是在PRISM中使用导航服务时的感受

它是如何工作的?

首先,您必须在使用的DI容器中注册所有页面

注意RegisterTypes()方法。

现在,如果您拥抱MVVM,您将同意在ViewModel中进行导航。 我们通过在构造函数中注入INavigationService来实现。

然后,我们可以使用_navigationService.NavigateAsync(“ PageNameHere”)将页面加载到导航堆栈中,或使用_navigationService.GoBackAsync()从堆栈中弹出页面。 就如此容易!

参数呢? 很高兴你问

为此,我们具有NavigationParameters对象,可以使用它传递参数,但请注意不要发送太多信息。

现在,我们如何在另一端接收参数?

简单,使用使用相同的NavigationParameters对象:

InavigatedAware

我们如何知道何时将ViewModel导航到,或者您将要从视图模型导航? 这是INavigatedAware发挥作用的地方

通过实现此接口,我们可以使用3种新方法

OnNavigatedFrom
在此我们可以导航到下一页之前进行自我注入。

OnNavigatedTo
当另一个页面导航到我们时,将执行此方法。 将ViewModel推入堆栈调用此方法。

OnNavigatingTo
最后(这是PRISM 6.3中的新增功能),它与OnNavigatedTo之间的区别在于,这是将ViewModel推入堆栈之前调用的。