public void ExitPage(MenuBehaviorType behaviorType, string pageName)
        {
            switch (behaviorType)
            {
            case MenuBehaviorType.ExitCurrentPage:
                var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(pageName));
                if (page.HeaderName != "系统首页")
                {
                    OpenPageCollection.Remove(page);
                }
                break;

            case MenuBehaviorType.ExitAllPage:
                var pageList = OpenPageCollection.Where(t => t.HeaderName != "系统首页").ToList();
                if (pageList != null)
                {
                    pageList.ForEach(t =>
                    {
                        OpenPageCollection.Remove(t);
                    });
                }
                break;

            case MenuBehaviorType.ExitAllExcept:
                var pageListExcept = OpenPageCollection.Where(t => t.HeaderName != pageName && t.HeaderName != "系统首页").ToList();
                if (pageListExcept != null)
                {
                    pageListExcept.ForEach(t =>
                    {
                        OpenPageCollection.Remove(t);
                    });
                }
                break;
            }
        }
Example #2
0
 /// <summary>
 /// 执行模块
 /// </summary>
 /// <param name="module"></param>
 private async void Excute(Module module)
 {
     try
     {
         if (module == null || string.IsNullOrEmpty(module.Code))
         {
             return;
         }
         if (module.Code == "OutDlg")
         {
             var relst = MessageBox.Show("是否要退出程序", "提示信息", MessageBoxButton.YesNo, MessageBoxImage.Question);
             if (relst == MessageBoxResult.Yes)
             {
                 this.ApplicationShutdown();
             }
         }
         var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(module.Name));
         if (page != null)
         {
             CurrentPage = page; return;
         }
         if (string.IsNullOrWhiteSpace(module.Code))
         {
             //404页面
             //DefaultViewPage defaultViewPage = new DefaultViewPage();
             //OpenPageCollection.Add(new PageInfo() { HeaderName = module.Name, Body = defaultViewPage });
             //CurrentPage = defaultViewPage;
         }
         else
         {
             await Task.Factory.StartNew(() =>
             {
                 var dialog = ServiceProvider.Instance.Get <IModel>(module.Code);
                 dialog.BindDefaultModel();
                 OpenPageCollection.Add(new PageInfo()
                 {
                     HeaderName = module.Name, Body = dialog.GetView()
                 });
             }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
         }
         CurrentPage = OpenPageCollection[OpenPageCollection.Count - 1];
     }
     catch (Exception ex)
     {
         Msg.Error(ex.Message);
     }
     finally
     {
         //Messenger.Default.Send(false, "PackUp");
         GC.Collect();
     }
 }
 /// <summary>
 /// 关闭页面
 /// </summary>
 /// <param name="module"></param>
 private void ExitPage(PageInfo module)
 {
     try
     {
         var tab = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(module.HeaderName));
         if (tab.HeaderName != "系统首页")
         {
             OpenPageCollection.Remove(tab);
         }
     }
     catch (Exception ex)
     {
         Msg.Error(ex.Message);
     }
 }
Example #4
0
 /// <summary>
 /// 执行模块
 /// </summary>
 /// <param name="module"></param>
 private async void Excute(Module module)
 {
     try
     {
         var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(module.Name));
         if (page != null)
         {
             CurrentPage = page; return;
         }
         if (module.ModNameSpcae == null)
         {
             DefaultViewPage defaultViewPage = new DefaultViewPage();
             OpenPageCollection.Add(new PageInfo()
             {
                 HeaderName = module.Name, Body = defaultViewPage
             });
             CurrentPage = defaultViewPage;
         }
         else
         {
             await Task.Run(() =>
             {
                 App.Current.Dispatcher.Invoke(() =>
                 {
                     var ass = System.Reflection.Assembly.GetExecutingAssembly();
                     if (ass.CreateInstance(module.ModNameSpcae) is IModel dialog)
                     {
                         dialog.BindDefaultModel(module.Authorities);
                         OpenPageCollection.Add(new PageInfo()
                         {
                             HeaderName = module.Name, Body = dialog.GetView()
                         });
                     }
                 });
             });
         }
         CurrentPage = OpenPageCollection[OpenPageCollection.Count - 1];
     }
     catch (Exception ex)
     {
         Msg.Error(ex.Message, false);
     }
     finally
     {
         Messenger.Default.Send(false, "PackUp");
         GC.Collect();
     }
 }
Example #5
0
        /// <summary>
        /// 初始化首页
        /// </summary>
        public void InitDefaultView()
        {
            //初始化工具栏,通知窗口
            _PopBoxView = new PopBoxViewModel();
            _NoticeView = new NoticeViewModel();
            //加载窗体模块
            _ModuleManager = new ModuleManager();
            _ModuleManager.LoadModules();
            //设置系统默认首页
            var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals("系统首页"));

            if (page == null)
            {
                HomeAbout about = new HomeAbout();
                OpenPageCollection.Add(new PageInfo()
                {
                    HeaderName = "系统首页", Body = about
                });
                CurrentPage = about;
            }
        }
 /// <summary>
 /// 执行模块
 /// </summary>
 /// <param name="module"></param>
 private async void Excute(Module module)
 {
     try
     {
         var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(module.Name));
         if (page != null)
         {
             CurrentPage = page; return;
         }
         if (string.IsNullOrWhiteSpace(module.Code))
         {
             //404页面
             //DefaultViewPage defaultViewPage = new DefaultViewPage();
             //OpenPageCollection.Add(new PageInfo() { HeaderName = module.Name, Body = defaultViewPage });
             //CurrentPage = defaultViewPage;
         }
         else
         {
             await Task.Factory.StartNew(() =>
             {
                 var dialog = ServiceProvider.Instance.Get <IModel>(module.Code);
                 dialog.BindDefaultModel();
                 OpenPageCollection.Add(new PageInfo()
                 {
                     HeaderName = module.Name, Body = dialog.GetView()
                 });
             }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
         }
         CurrentPage = OpenPageCollection[OpenPageCollection.Count - 1];
     }
     catch (Exception ex)
     {
         Msg.Error(ex.Message);
     }
     finally
     {
         Messenger.Default.Send(false, "PackUp");
         GC.Collect();
     }
 }
        /// <summary>
        /// 初始化首页
        /// </summary>
        public async void InitDefaultView()
        {
            //初始化工具栏,通知窗口
            _PopBoxView = new PopBoxViewModel();
            _NoticeView = new NoticeViewModel();
            //加载窗体模块
            _ModuleManager = new ModuleManager();
            await _ModuleManager.LoadModules();

            //设置系统默认首页
            var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals("系统首页"));

            if (page == null)
            {
                //演示Demo加载默认首页,较消耗性能。 实际开发务移除患者更新开发部件。
                HomeAbout about = new HomeAbout();
                OpenPageCollection.Add(new PageInfo()
                {
                    HeaderName = "系统首页", Body = about
                });
                CurrentPage = OpenPageCollection[OpenPageCollection.Count - 1];
            }
        }
Example #8
0
        private async void PageChange(MeumModel module)
        {
            var page = OpenPageCollection.FirstOrDefault(t => t.HeaderName.Equals(module.Name));

            if (page != null)
            {
                CurrentPage = page; return;
            }
            else
            {
                await Task.Factory.StartNew(() =>
                {
                    var dialog = ServiceProvider.Instance.Get <IModel>(module.Code);
                    dialog.BindDefaultModel();
                    OpenPageCollection.Add(new PageInfo()
                    {
                        HeaderName = module.Name, Body = dialog.GetView()
                    });
                }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());

                CurrentPage = OpenPageCollection[OpenPageCollection.Count - 1];
            }
        }