无法在 Xamarin.Forms 中实现导航
Posted
技术标签:
【中文标题】无法在 Xamarin.Forms 中实现导航【英文标题】:Cant implement navigation in Xamarin.Forms 【发布时间】:2019-02-09 08:21:11 【问题描述】:我正在Xamarin.Forms
上写一个应用程序。有一个主要形式,可以从它转移到其他表示形式。问题是我无法使用页面导航。如何实施? ViewModel
我有一个图书馆。我使用MvvmLightLibs
向其发送命令。我看到的所有信息都给出了使用INavigation
的示例,但在ViewModel
中不可见
【问题讨论】:
【参考方案1】:您必须自己实现NavigationService
,在 MvvmLight for Xamarin.Forms 中没有现成可用的。然而,实现这样的服务非常简单,只需几个方法就足够了。我建议您查看this blogpost,其中包含构建简单 Xamarin.Forms + MvvmLight 应用程序的演练。
关键是要创建一个像INavigationService
这样的接口,它会有像NavigateTo
和GoBack
这样的方法。然后,您创建一个实现此接口的类并使用根 NavigationPage
在整个应用程序中导航。在启动时,您创建一个NavigationService
的实例并传入NavigationPage
的实例,它将使用它。
如果您使用SimpleIoc
注册实例,则可以使用构造函数注入 - 在您的视图模型中,您将INavigationService
参数添加到构造函数,框架将传入您注册的实例。
所有这些都在上面链接的博文中进行了演示,因此这是一个很好的起点。
另一个很好的学习资源是 this Xamarin Show 插曲,其中 MvvmLight 的创建者 Laurent Bugnion 亲自展示了如何将框架与 Xamarin.Forms 一起使用。
【讨论】:
也许另一个 nuGets 有这个功能? 无论如何,你仍然必须传递你的导航页面。我认为首先遵循其中一个教程,然后在您的解决方案中重新创建它是最好的方法以上是关于无法在 Xamarin.Forms 中实现导航的主要内容,如果未能解决你的问题,请参考以下文章
我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框
如何在 Xamarin Forms 中实现 CrossPushNotification 插件?