您的位置:首页 > 其它

Prism 源码解读7-导航

2020-04-06 00:09 666 查看
## 介绍 Prism提供了一个非常强大的功能导航,导航的意思就是指定对应的View显示。这个导航的强大之处有: - 可以设置导航前后的动作 - 可以指定View实例的生命周期,可以是否导航到新的View实例 - 提供了确认导航接口。 ![](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000637632-690027267.png) - 导航前后均有相应的事件通知 - 提供了回退前进的导航功能 ## 导航 直接看代码 ![1586101856797](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626352-1033163922.png) ![1586101868352](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626383-762316846.png) 可以看到直接通过RequstNavigate来请求,参数是View的TypeName ![1586101921254](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626384-1979015239.png) 转到了Region.RequestNavigate里 ![1586101954617](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626385-599869801.png) 这边出现了NavigationService,几乎所有的导航功能都是在这个服务中实现的, ![1586102614643](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626384-721979010.png) ![1586101993357](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626384-1258463890.png) ![1586102012245](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626384-533630853.png) 这边将导航的一些信息封装成NavigationContext, ![1586102044383](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626408-175311131.png) 在这出现了第一个功能,实现ICon'firm'NavigationRequest接口,确认导航。 最后来到了最重要的函数ExecuteNavigation ![1586102124583](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626412-1411393303.png) 这个函数每一行都很重要,每一行都是一个功能。 ![1586102153448](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626421-750942260.png) 调用OnNavigateFrom,可以在导航前做一些操作 ![1586102182080](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626422-16049822.png) 获取导航内容,先从Region的View中找,没找到就到容器中找,然后添加到Region的View。 ![1586102280441](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000626426-1333540151.png) 激活界面 创建条目,保存条目,主要用来进行前进后退 触发导航完成事件。 整个导航功能的顺序: ![](https://img2020.cnblogs.com/blog/1078802/202004/1078802-20200406000704969-1976947998.png) ## 总结 Prism提供的这个导航功能非常强大,但是代码却不复杂,通过一些简单的接口,实现了非常强大的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: