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(); }
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; }
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))); }