Prism中,页面跳转以及页面之间传递参数(NavigationParameters)
来源:互联网 发布:成都行知小学的简介 编辑:程序博客网 时间:2024/05/22 17:30
一、页面跳转概述
在Prism中,使用Navigation来进行页面之间的跳转通常需要一下几步:
1. 创建新页面,并且实现INavigationAware接口
2. 使用IRegionManager注册页面
3. 使用NavigationParameters封装页面跳转的参数
4. 使用IRegionManager.RequestNavigate()跳转到目标页面
二、例子
- 创建新页面,并且实现INavigationAware接口
public partial class ContactMainWindowView : UserControl, INavigationAware { public ContactMainWindowView() { InitializeComponent(); } #region INavigationAware public void OnNavigatedTo(NavigationContext navigationContext) { } public bool IsNavigationTarget(NavigationContext navigationContext) { var param = navigationContext.Parameters["Param"] ; Console.WriteLine(param?.ToString()); return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } #endregion }
- 使用IRegionManager注册页面
ServiceLocator.Current.GetInstance<IRegionManager>().Regions[RegionNames.ContentRegion].Add(new ContactMainWindowView());
- 用NavigationParameters封装参数:
方法一:该方法参数类型可以为object
var para = new NavigationParameters(); para.Add("Uri", "ContactMainWindowView");//此处建议将ContactMainWindowView定义为常量 para.Add("Param", "hello saylor");//key必须为字符串,value可以传递object类型,此处用"hello saylor"
方法二:该方法参数类型可以为string
var para = new NavigationParameters("Uri=ContactMainWindowView&Param=hello saylor");
- 使用IRegionManager.RequestNavigate()跳转到目标页面
ServiceLocator.Current.GetInstance<IRegionManager>().RequestNavigate(RegionNames.ContentRegion, para["Uri"].ToString(), para);
三、总结
- 使用IRegionManager注册页面时,是new一个新页面(不要多次注册)。并且对应的region会默认显示第一个注册的View。
- 使用了ServiceLocator来获取IRegionManager的实例。prism中,默认创建了实例,并进行了注册(依赖注入)。
- 用NavigationParameters封装参数,方法二中,构造函数的参数类似于get请求中的参数形式。
阅读全文
0 0
- Prism中,页面跳转以及页面之间传递参数(NavigationParameters)
- JSP中参数传递以及页面跳转
- 页面之间相互跳转的参数传递
- 页面之前跳转 和页面之间传递参数
- 跳转页面传递参数
- 页面之间传递参数.
- 页面之间传递参数
- 页面之间传递参数
- Servlet中页面之间传递参数
- jquery在两个HTM页面之间跳转传递参数
- .jsp与servlet之间页面跳转及参数传递实例
- jsp与servlet之间页面跳转及参数传递实例
- jsp与servlet之间页面跳转及参数传递实例
- jsp与servlet之间页面跳转及参数传递实例
- Android 页面跳转 传递参数
- thinkphp 页面跳转传递参数
- html页面跳转传递参数
- angular-页面跳转传递参数
- Java---lombok注解插件
- Leetcode 算法设计 第十四周
- dropbear添加新的密钥交换协议
- AVL自平衡二叉查找树
- 像素数据的读取和拷贝
- Prism中,页面跳转以及页面之间传递参数(NavigationParameters)
- 微信小程序正则判断手机号?
- 图解阿里云数据库产品
- C++ 结合mysql-connector 的连接池实验记录
- 安卓设计模式の外观模式
- 微信小程序入门基础教程
- Spring学习笔记(二)
- python中的正则表达式(re模块)
- c的堆栈-转载