Prism_导航
一、导航中传递参数
1.通过NavigationParameters中的Add方法,以键值对的方式传递参数
/// <summary> /// 改变显示用户控件 /// </summary> /// <param name="ViewName"></param> private void ShowContentFun(string ViewName) { NavigationParameters paras = new NavigationParameters(); paras.Add("MsgA", "大家好,我是A!"); //键值对 paras.Add("MsgB", "大家好,我是B!"); RegionManager.Regions["ContentRegion"].RequestNavigate(ViewName, paras); }
2.通过继承导航感知INavigationAware,实现接口接收参数
/// <summary> /// 接收参数 /// </summary> /// <param name="navigationContext"></param> /// <exception cref="NotImplementedException"></exception> public void OnNavigatedTo(NavigationContext navigationContext) { if (navigationContext.Parameters.ContainsKey("MsgA")) { Msg = navigationContext.Parameters.GetValue<string>("MsgA"); } } /// <summary> /// 是否重用实例 /// </summary> /// <param name="navigationContext"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { }
二、导航请求确认
1.继承IConfirmNavigationRequest接口实现ConfirmNavigationRequest
public void ConfirmNavigationRequest( NavigationContext navigationContext, Action<bool> continuationCallback ) { bool result = true; if ( MessageBox.Show("确定切换吗?", "温馨提示", MessageBoxButton.YesNo) == MessageBoxResult.No ) result = false; continuationCallback(result); }
三、回退
1.导航请求方法中添加导航回调参数,获取导航日志
/// <summary> /// 导航日志 /// </summary> private IRegionNavigationJournal journal; /// <summary> /// 改变显示用户控件 /// </summary> /// <param name="ViewName"></param> private void ShowContentFun(string ViewName) { NavigationParameters paras = new NavigationParameters(); paras.Add("MsgA", "大家好,我是A!"); //键值对 paras.Add("MsgB", "大家好,我是B!"); RegionManager .Regions["ContentRegion"] .RequestNavigate( ViewName, (call) => { journal = call.Context.NavigationService.Journal; }, paras ); }
2.实现回退
/// <summary> /// 回退方法 /// </summary> /// <exception cref="NotImplementedException"></exception> private void Back() { if (journal != null && journal.CanGoBack) journal.GoBack(); }

浙公网安备 33010602011771号