Prism中,页面跳转以及页面之间传递参数(NavigationParameters)
2017-12-05 10:35
931 查看
一、页面跳转概述
在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请求中的参数形式。
相关文章推荐
- 微信小程序详解——页面之间的跳转方式【路由】和参数传递
- js实现两个页面之间跳转参数传递
- jsp与servlet之间页面跳转及参数传递实例
- JSP中参数传递以及页面跳转
- jsp与servlet之间页面跳转及参数传递实例
- android中页面跳转以及数据在Activity之间的传递
- Fragment和activity的之间的数据传递以及页面跳转
- 11. jsp与servlet之间页面跳转及参数传递实例
- jquery在两个HTM页面之间跳转传递参数
- Jquery跳转页面传递参数以及获取url的参数
- (转载)jsp与servlet之间页面跳转及参数传递实例
- 11. jsp与servlet之间页面跳转及参数传递实例
- js页面之间以及vue $http请求向后台传递参数中文乱码问题解决
- asp.net mvc 2.0页面带参数跳转以及获取传递的参数
- 页面之前跳转 和页面之间传递参数
- 微信小程序详解——页面之间的跳转方式【路由】和参数传递
- 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例
- js实现两个页面之间跳转参数传递
- .jsp与servlet之间页面跳转及参数传递实例
- Jsp与servlet之间页面跳转及参数传递实例(转)