Prism 源码解读7-导航
介绍
Prism提供了一个非常强大的功能导航,导航的意思就是指定对应的View显示。这个导航的强大之处有:
- 可以设置导航前后的动作
- 可以指定View实例的生命周期,可以是否导航到新的View实例
- 提供了确认导航接口。
- 导航前后均有相应的事件通知
- 提供了回退前进的导航功能
导航
直接看代码
可以看到直接通过RequstNavigate来请求,参数是View的TypeName
转到了Region.RequestNavigate里
这边出现了NavigationService,几乎所有的导航功能都是在这个服务中实现的,
这边将导航的一些信息封装成NavigationContext,
在这出现了第一个功能,实现ICon'firm'NavigationRequest接口,确认导航。
最后来到了最重要的函数ExecuteNavigation
这个函数每一行都很重要,每一行都是一个功能。
调用OnNavigateFrom,可以在导航前做一些操作
获取导航内容,先从Region的View中找,没找到就到容器中找,然后添加到Region的View。
激活界面
创建条目,保存条目,主要用来进行前进后退
触发导航完成事件。
整个导航功能的顺序:
总结
Prism提供的这个导航功能非常强大,但是代码却不复杂,通过一些简单的接口,实现了非常强大的功能。

您的资助是我最大的动力!
金额随意,欢迎来赏!
作者:阿杜聊编程
出处:https://www.cnblogs.com/lovexinyi/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任
出处:https://www.cnblogs.com/lovexinyi/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步