123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- using Prism.Commands;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Controls;
- using System.Windows.Data;
- using Venus_Core;
- using Venus_Unity;
- using RoleDefine = Venus_MainPages.Roles.RoleDefine;
- using Menu = Venus_MainPages.Roles.Menu;
- using Venus_MainPages.Views;
- namespace Venus_MainPages.ViewModels
- {
- internal class RoleViewModel : BindableBase
- {
- #region 私有属性
- List<VenusMenu> m_venusMenus = new List<VenusMenu>();
- ObservableCollection<Menu> m_Menus=new ObservableCollection<Menu>();
- ICollectionView vm;
- ObservableCollection<string> m_Roles = new ObservableCollection<string>();
- ObservableCollection<RoleDefine> m_RoleDefines = new ObservableCollection<RoleDefine>();
- private bool firstLoad = true;
- private RoleView roleView;
- #endregion
- #region 依赖项属性
- public List<VenusMenu> VenusMenus
- {
- get { return m_venusMenus; }
- set
- {
- SetProperty(ref m_venusMenus, value);
- }
- }
- public ObservableCollection<Menu> Menus
- {
- get { return m_Menus; }
- set
- {
- SetProperty(ref m_Menus, value);
- }
- }
- public ObservableCollection<string> Roles
- {
- get
- {
- return m_Roles;
- }
- set
- {
- SetProperty(ref m_Roles, value);
- }
- }
- public ObservableCollection<RoleDefine> RoleDefines
- {
- get { return m_RoleDefines; }
- set
- {
- SetProperty(ref m_RoleDefines, value);
- }
- }
- #endregion
- private DelegateCommand _SaveCommand;
- public DelegateCommand SaveCommand =>
- _SaveCommand ?? (_SaveCommand = new DelegateCommand(OnSave));
- private DelegateCommand<object> _CheckedCommand;
- public DelegateCommand<object> CheckedCommand =>
- _CheckedCommand ?? (_CheckedCommand= new DelegateCommand<object>(OnChecked));
- private DelegateCommand _SelectedItemChangedCommand;
- public DelegateCommand SelectedItemChangedCommand =>
- _SelectedItemChangedCommand ?? (_SelectedItemChangedCommand = new DelegateCommand(OnSelectedItemChanged));
- private DelegateCommand<Object> _LoadedCommand;
- public DelegateCommand<Object> LoadedCommand =>
- _LoadedCommand ?? (_LoadedCommand = new DelegateCommand<Object>(OnLoaded));
- public RoleViewModel()
- {
- VenusMenus = SerializeHelper.Instance.ReadFromJsonFile<List<VenusMenu>>("Config/UIMenuList.json");
- VenusMenus.ForEach(x =>
- {
- x.MenuItem.ForEach(k =>
- {
- Menus.Add(new Menu(x.Name, k.Id));
- });
- });
- RoleDefines.Add(new RoleDefine("Manager", new ObservableCollection<Menu>(Menus)));
- RoleDefines.Add(new RoleDefine("Engineer", new ObservableCollection<Menu>(Menus)));
- RoleDefines.Add(new RoleDefine("Technician", new ObservableCollection<Menu>(Menus)));
- RoleDefines.Add(new RoleDefine("Operator", new ObservableCollection<Menu>(Menus)));
- Roles.Add("Manager");
- Roles.Add("Engineer");
- Roles.Add("Technician");
- Roles.Add("Operator");
- Menus = RoleDefines[0].Menus;
- vm = CollectionViewSource.GetDefaultView(Menus);
- vm.GroupDescriptions.Add(new PropertyGroupDescription("FirstMenu"));
- }
- private void OnSave()
- {
- //SerializeHelper.Instance.WriteToJsonFile<List<VenusMenu>>(VenusMenus, "Config/UIMenu.json");
- }
- private void OnChecked(object obj)
- {
-
- }
- private void OnSelectedItemChanged()
- {
- }
- private void OnLoaded(Object myrecipeView)
- {
- if (firstLoad == true)
- {
- roleView = myrecipeView as RoleView;
- roleView.roleTreeView.SelectedItemChanged += RoleTreeView_SelectedItemChanged;
- }
- }
- private void RoleTreeView_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<object> e)
- {
- int index = Roles.IndexOf(e.NewValue.ToString());
- Menus = RoleDefines[index].Menus;
- //vm = CollectionViewSource.GetDefaultView(Menus);
- //vm.GroupDescriptions.Add(new PropertyGroupDescription("FirstMenu"));
- }
- }
- }
|