using InSituLaboratory.Base; using InSituLaboratory.Entities; using InSituLaboratory.IService; using InSituLaboratory.Models; using Prism.Events; using Prism.Regions; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace InSituLaboratory.ViewModels.Pages { public class MenuManagementViewModel : ViewModelBase { IMenuService _menuService; IDialogService _dialogService; IEventAggregator _eventAggregator; public MenuManagementViewModel(IRegionManager regionManager, IMenuService menuService, IDialogService dialogService, IEventAggregator eventAggregator) : base(regionManager) { PageTitle = "菜单数据维护"; _menuService = menuService; _dialogService = dialogService; _eventAggregator = eventAggregator; Refresh(); } public ObservableCollection Menus { get; set; } = new ObservableCollection(); List origMenus; string _searchKey; //搜索 刷新 public override void Refresh() { Menus.Clear(); origMenus = _menuService.GetMenuList(SearchKey).ToList(); MenuHelper.FillMenus(Menus, null, origMenus); } //新建 编辑菜单 public override void DoModify(object model) { DialogParameters ps = new DialogParameters(); ps.Add("model", model); _dialogService.ShowDialog("ModifyMenuView", ps, result => { // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { this.Refresh(); //通知左侧树状图菜单变化 _eventAggregator.GetEvent().Publish(); } }); } /// /// 删除 /// /// public override void DoDelete(object model) { try { if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { //物理删除 _menuService.Delete((model as MenuItemModel).MenuId); //逻辑删除 //通过特定字段进行数据过滤 //以下方法存在问题,菜单列表刷新需要条件过滤 //var entity = _menuService.Find((model as MenuItemModel).MenuId); //entity.State = 0; //_menuService.Update(entity); MessageBox.Show("删除完成!", "提示"); this.Refresh(); _eventAggregator.GetEvent().Publish(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } } }