You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.1 KiB
C#

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<MenuItemModel> _menus;
public ObservableCollection<MenuItemModel> Menus { get => _menus; set => SetProperty(ref _menus, value); }
// private List<MenuInfoDTO> 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<GlobalEntity>();// 注册一个单例
// ea.GetEvent<LoginEvent>().Subscribe(OnLogin, ThreadOption.UIThread);
}
#region 事件
public DelegateCommand AboutCommand => new(()=>
{
DialogParameters param=new DialogParameters();
_dialogService.ShowDialog(
"AboutDialogView",
param,
new Action<IDialogResult>(result =>
{
if (result != null && result.Result == ButtonResult.OK)
{
MessageBox.Show("数据已保存", "提示");
}
}));
});
#endregion
//private void OnLogin(LoginPayload loginPayload)
//{
// Menus = new ObservableCollection<MenuItemModel>();
// if (!loginPayload.IsLogingIn) //
// {
// //登录完成更新措菜单
// if (GlobalEntity.CurrentUserInfo != null)
// {
// origMenus = GlobalEntity.CurrentUserInfo.Menus;
// this.FillMenus(Menus, 0);
// }
// }
//}
///递归
///
private void FillMenus(ObservableCollection<MenuItemModel> menus, int parentId)
{
// var sub = origMenus.Where(m => m.ParentId == parentId).OrderBy(o => o.Index);
//if (sub.Count() > 0)
//{
// foreach (var item in sub)
// {
// MenuItemModel mm = new MenuItemModel(_regionManager)
// {
// MenuHeader = item.MenuHeader,
// MenuIcon = item.MenuIcon,
// TargetView = item.TargetView
// };
// menus.Add(mm);
// FillMenus(mm.Children = new ObservableCollection<MenuItemModel>(), item.MenuId);
// }
//}
}
}
}