using MainShell.HeightMeasure.ViewModel; using MainShell.Models; using MaxwellFramework.Core.Interfaces; using Stylet; using StyletIoC; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MainShell.ParaSetting.ViewModel { internal class ParaSettingViewModel : BaseScreen, IPage { public string Name => "PageSettings"; private const string DEVICEPOSITION = "设备点位参数"; private const string DEVICERUNSETTING = "设备运行参数"; private const string DEVICESAFESETTING = "设备安全参数"; private const string DEVICEBASESETTING = "设备基础参数"; private readonly Dictionary _viewModelDict = new Dictionary(); public ObservableCollection MenuItemWraps { get; private set; } private MenuItemWrap _selectedMenuItem; public MenuItemWrap SelectedMenuItem { get { return _selectedMenuItem; } set { if (SetAndNotify(ref _selectedMenuItem, value)) { CurrentScreen = _viewModelDict[value.Header]; } } } private Screen _currentScreen; public Screen CurrentScreen { get { return _currentScreen; } set { SetAndNotify(ref _currentScreen, value); } } private DeviceRunSettingViewModel _deviceRunSettingViewModel; [Inject] public DeviceRunSettingViewModel DeviceRunSettingViewModel { get { return _deviceRunSettingViewModel; } set { _deviceRunSettingViewModel = value; } } private DevicePositionViewModel _devicePositionViewModel; [Inject] public DevicePositionViewModel DevicePositionViewModel { get { return _devicePositionViewModel; } set { _devicePositionViewModel = value; } } private DeviceFoundationViewModel _deviceFoundationViewModel; [Inject] public DeviceFoundationViewModel DeviceFoundationViewModel { get { return _deviceFoundationViewModel; } set { _deviceFoundationViewModel = value; } } private DeviceSafetyViewModel _deviceSafetyViewModel; [Inject] public DeviceSafetyViewModel DeviceSafetyViewModel { get { return _deviceSafetyViewModel; } set { _deviceSafetyViewModel = value; } } public ParaSettingViewModel() { InitMenuItems(); } protected override void OnViewLoaded() { base.OnViewLoaded(); if (_viewModelDict.Count == 0) { InitViewModelDict(); } if (SelectedMenuItem == null) SelectedMenuItem = MenuItemWraps[0]; } private void InitMenuItems() { MenuItemWraps = new ObservableCollection { new MenuItemWrap() { Header=DEVICEPOSITION,Tag=DEVICEPOSITION }, new MenuItemWrap() { Header=DEVICERUNSETTING,Tag=DEVICERUNSETTING }, new MenuItemWrap() { Header=DEVICESAFESETTING,Tag=DEVICESAFESETTING }, new MenuItemWrap() { Header=DEVICEBASESETTING,Tag=DEVICEBASESETTING }, }; } private void InitViewModelDict() { _viewModelDict.Clear(); _viewModelDict.Add(DEVICEPOSITION, DevicePositionViewModel); _viewModelDict.Add(DEVICERUNSETTING, DeviceRunSettingViewModel); _viewModelDict.Add(DEVICESAFESETTING, DeviceSafetyViewModel); _viewModelDict.Add(DEVICEBASESETTING, DeviceFoundationViewModel); } } }