using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; using StartServerWPF.Modules.Main.Models; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows; namespace StartServerWPF.Modules.Main.ViewModels { public class TreeMenuViewModel : BindableBase { private ObservableCollection _menus; public ObservableCollection Menus { get => _menus; set => SetProperty(ref _menus, value); } // private List origMenus = null; private IRegionManager _regionManager = null; private readonly IDialogService _dialogService; public TreeMenuViewModel(IContainerProvider containerProvider, IRegionManager regionManager, IEventAggregator ea, IDialogService dialogService) { _regionManager = regionManager; this._dialogService = dialogService; //var global = containerProvider.Resolve();// 注册一个单例 // ea.GetEvent().Subscribe(OnLogin, ThreadOption.UIThread); Menus=new ObservableCollection(); FillMenus(Menus); } #region 事件 public DelegateCommand AboutCommand => new(()=> { DialogParameters param=new DialogParameters(); _dialogService.ShowDialog( "AboutDialogView", param, new Action(result => { if (result != null && result.Result == ButtonResult.OK) { MessageBox.Show("数据已保存", "提示"); } })); }); #endregion //private void OnLogin(LoginPayload loginPayload) //{ // Menus = new ObservableCollection(); // if (!loginPayload.IsLogingIn) // // { // //登录完成更新措菜单 // if (GlobalEntity.CurrentUserInfo != null) // { // origMenus = GlobalEntity.CurrentUserInfo.Menus; // this.FillMenus(Menus, 0); // } // } //} ///递归 /// /// 递归 /// /// private void FillMenus(ObservableCollection menus) { for (int i = 0; i < menuNames.Count; i++) { MenuItemModel menuItem = new MenuItemModel(_regionManager) { MenuHeader = menuNames[i], MenuIcon = "\ue63a", TargetView = viewName[i], Children = new ObservableCollection(), IsExpanded = true, }; menus.Add(menuItem); } } List menuNames = new List() {"首页","实时波形","波形回放","设置","日志","文件监控" }; List viewName = new List() { "MainView", "RealTimeWaveformView", "WaveformPlayBackView", "SetParamView", "LogManagementView","FilesWatcherView" }; } }