private async void LoadView(OPC_AuthMenu menu, Action viewLoadedCallback = null)
        {
            if (menu == null)
            {
                return;
            }

            SelectCurrentMenu(menu);

            var url        = menu.Url;
            var controller = await MvvmUtility.ShowProgressAsync("正在加载,请稍候...");

            try
            {
                Action registerView = () =>
                {
                    ClearContentRegion();

                    if (url.Contains("ViewModel"))
                    {
                        _regionManager.RegisterViewWithRegion(RegionNames.MainContentRegion,
                                                              () => AppEx.Container.GetInstance <IViewModel>(url).View);
                    }
                    else
                    {
                        _regionManager.RegisterViewWithRegion(RegionNames.MainContentRegion,
                                                              () => AppEx.Container.GetInstance <UserControl>(url));
                    }
                };

                Action action = () =>
                {
                    Thread.Sleep(2000);
                    MvvmUtility.PerformActionOnUIThread(registerView);
                };

                await Task.Run(action);

                if (viewLoadedCallback != null)
                {
                    viewLoadedCallback();
                }
            }
            catch (ViewRegistrationException)
            {
                MessageBox.Show("功能正在开发中...", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("加载过程中出现错误: {0}", ex.Message), "错误", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            await controller.CloseAsync();
        }
Ejemplo n.º 2
0
        private void OnNavigatingToView(OPC_AuthMenu viewMenu)
        {
            var mainWindow = Application.Current.MainWindow as MetroWindow;

            if (mainWindow == null)
            {
                return;
            }

            mainWindow.Show();
            mainWindow.WindowState = WindowState.Maximized;
        }
        private void SelectCurrentMenu(OPC_AuthMenu menu)
        {
            if (GroupItems == null || !GroupItems.Any())
            {
                return;
            }

            foreach (var groupItem in GroupItems)
            {
                foreach (var menuItem in groupItem.Items)
                {
                    menuItem.IsSelected = (menuItem.Id == menu.Id);
                }
            }
        }
        /// <summary>
        ///     Databases the grid click.
        /// </summary>
        private void DBGridClick()
        {
            var role2MenuService = AppEx.Container.GetInstance <IRole2MenuService>();

            if (SelectedRole == null)
            {
                return;
            }
            List <OPC_AuthMenu> menus = role2MenuService.GetMenuList(SelectedRole.Id);
            var menus2xx = new List <OPC_AuthMenu>();

            foreach (OPC_AuthMenu item in MenuList)
            {
                item.IsSelected = false;
                if (menus != null)
                {
                    OPC_AuthMenu menutemp = menus.FirstOrDefault(e => e.Id == item.Id);
                    item.IsSelected = menutemp != null;
                }
                menus2xx.Add(item);
            }
            //SelectedMenus = menus.ToList();
            MenuList = menus2xx;
        }
Ejemplo n.º 5
0
 public NavigatingToViewEventArgs(OPC_AuthMenu authorizedMenu, Action navigatedCallback)
 {
     tuple = new Tuple <OPC_AuthMenu, Action>(authorizedMenu, navigatedCallback);
 }
        private void PublishNavigatingEvent(OPC_AuthMenu viewMenu, Invoice4Get queryCriteria)
        {
            var eventAggregator = AppEx.Container.GetInstance <GlobalEventAggregator>();

            eventAggregator.GetEvent <NavigatingToViewEvent>().Publish(new NavigatingToViewEventArgs(viewMenu, () => PublishSalesOrderDetectedEvent(queryCriteria)));
        }