/// <summary> /// 创建新窗体导航消息 /// </summary> /// <param name="exportViewkey">显示的View</param> /// <param name="parameter">创建View时的参数</param> /// <param name="showInTaskBar">是否显示任务条</param> /// <param name="isTopMost">是否置顶显示</param> /// <returns></returns> public static NormalNavigationArgs CreateWindowNavigationArgs(string exportViewkey, object parameter, bool showInTaskBar = false, bool isTopMost = false) { NormalNavigationArgs argsResult = new NormalNavigationArgs(exportViewkey, parameter, showInTaskBar, isTopMost); //记录导航日志 NavigationLogHelper.AddNavigationLog(argsResult, true); return(argsResult); }
/// <summary> /// 创建主界面导航消息 /// </summary> /// <param name="exportViewkey">显示的View</param> /// <param name="parameter">创建View时的参数</param> /// <param name="isBackArgs">是否为返回消息</param> /// <returns></returns> public static NormalNavigationArgs CreateMainViewNavigationArgs(string exportViewkey, object parameter, bool isBackArgs = false) { NormalNavigationArgs argsResult = new NormalNavigationArgs(exportViewkey, parameter); argsResult.IsBackArgs = isBackArgs; //记录导航日志 NavigationLogHelper.AddNavigationLog(argsResult, false); return(argsResult); }
/// <summary> /// 设置子界面状态 /// </summary> /// <param name="isExpanded">是否展开创建案例界面</param> /// <param name="needCollapsedNavigation">是否需要折叠导航,true:折叠案例编辑界面时自动返回最后一个非案例编辑界面</param> public static void SetEditCaseViewStatus(bool isExpanded, bool needCollapsedNavigation = true) { CurEditViewOpenStatus = isExpanded; //便于以后扩展用 SubViewMsgModel curStatus = new SubViewMsgModel(isExpanded); //展开或收起案例名 SysCommonMsgArgs <SubViewMsgModel> sysArgs = new SysCommonMsgArgs <SubViewMsgModel>(SystemKeys.SetSubViewStatus); sysArgs.Parameters = curStatus; MsgAggregation.Instance.SendSysMsg <SubViewMsgModel>(sysArgs); if (isExpanded) { //展开案例编辑界面 NormalNavigationArgs args = NormalNavigationArgs.CreateMainViewNavigationArgs(ExportKeys.CaseCreationView, null); MsgAggregation.Instance.SendNavigationMsgForMainView(args); } else if (needCollapsedNavigation) { /* * TODO * 此处特殊处理 * 因为案例编辑界面是固定的子界面 * 同时为了防止返回时界面状态丢失 * 所以将打开案例管理界面之前的界面缓存 * 在发送导航消息时【参数就是缓存的上一个界面】 * * beforeViewOnIsExpanded==null:刚启动程序,登录进入主界面。由于逻辑问题会在登录后执行一次返回 * */ //折叠,还原为上个界面 var beforeViewKey = NavigationLogHelper.GetBeforeViewKeyBySkipKeyAtMainView(ExportKeys.CaseCreationView); if (!string.IsNullOrWhiteSpace(beforeViewKey)) { NormalNavigationArgs args = beforeViewOnIsExpanded == null? NormalNavigationArgs.CreateMainViewNavigationArgs(beforeViewKey, null) : NormalNavigationArgs.CreateMainViewNavigationArgs(beforeViewKey, beforeViewOnIsExpanded, true); MsgAggregation.Instance.SendNavigationMsgForMainView(args); } } }