首页 > 解决方案 > 无法在 Xamarin.Forms 中实现导航

问题描述

我正在写一个应用程序Xamarin.Forms。有一个主要形式,可以从它转移到其他表示形式。问题是我无法使用页面导航。如何实施?ViewModel我有一个图书馆。我使用MvvmLightLibs. 我看到的所有信息都给出了一个使用的例子INavigation,但它在ViewModel

在此处输入图像描述

标签: c#xamarinmvvmxamarin.formsmvvm-light

解决方案


您必须自己实现一个NavigationService,在 MvvmLight for Xamarin.Forms 中没有现成可用的。然而,实现这样的服务非常简单,只需几个方法就足够了。我建议您查看这篇博文,其中包含构建简单 Xamarin.Forms + MvvmLight 应用程序的演练。

关键是要创建一个这样的接口,该接口INavigationService将具有NavigateTo和之类的方法GoBack。然后,您创建一个实现此接口并使用根NavigationPage在整个应用程序中导航的类。在启动时,您创建一个实例NavigationService并传入NavigationPage它将使用的实例。

如果您使用 注册实例SimpleIoc,则可以使用构造函数注入 - 在您的视图模型中,您INavigationService向构造函数添加参数,框架将传入您注册的实例。

所有这些都在上面链接的博文中得到了展示,因此这是一个很好的起点。

另一个很好的学习资源是这个 Xamarin Show插曲,其中 MvvmLight 的创建者 Laurent Bugnion 本人展示了如何将框架与 Xamarin.Forms 一起使用。


推荐阅读