c# - 无法在 Xamarin.Forms 中实现导航
问题描述
我正在写一个应用程序Xamarin.Forms
。有一个主要形式,可以从它转移到其他表示形式。问题是我无法使用页面导航。如何实施?ViewModel
我有一个图书馆。我使用MvvmLightLibs
. 我看到的所有信息都给出了一个使用的例子INavigation
,但它在ViewModel
解决方案
您必须自己实现一个NavigationService
,在 MvvmLight for Xamarin.Forms 中没有现成可用的。然而,实现这样的服务非常简单,只需几个方法就足够了。我建议您查看这篇博文,其中包含构建简单 Xamarin.Forms + MvvmLight 应用程序的演练。
关键是要创建一个这样的接口,该接口INavigationService
将具有NavigateTo
和之类的方法GoBack
。然后,您创建一个实现此接口并使用根NavigationPage
在整个应用程序中导航的类。在启动时,您创建一个实例NavigationService
并传入NavigationPage
它将使用的实例。
如果您使用 注册实例SimpleIoc
,则可以使用构造函数注入 - 在您的视图模型中,您INavigationService
向构造函数添加参数,框架将传入您注册的实例。
所有这些都在上面链接的博文中得到了展示,因此这是一个很好的起点。
另一个很好的学习资源是这个 Xamarin Show插曲,其中 MvvmLight 的创建者 Laurent Bugnion 本人展示了如何将框架与 Xamarin.Forms 一起使用。
推荐阅读
- python - 在 Python 的 2 个列表中查找第一个匹配项
- c# - 如何防止此调试器错误:在评估函数时防止不安全中止
- android - 获取包安装程序
- javascript - 如何在 Apache shibboleth 管理的受限站点上声明 manifest.json 链接标签?
- bash - Bash:如何使用 bash 脚本解析包含 ls -ltr 输出的日志文件以提取在特定时间之前修改的文件名
- javascript - 如何在点击时分别为每个元素设置动画?
- c# - 多行查询执行
- sql-server - 查询使用内存表和/或聚集列存储索引返回错误数据
- c# - 如何知道按键按下了多少毫秒?
- python - python / 我想解决 TypeError: 'str' object is not callable