| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using System;
- using Prism.Mvvm;
- using System.Linq;
- using Prism.Regions;
- using Prism.Commands;
- using System.Windows.Controls;
- using System.Collections.Generic;
- using SHJX.Service.Common.Constants;
- using SHJX.Service.Common.Interface;
- using SHJX.Service.Control.Interface;
- using System.Collections.ObjectModel;
- namespace SHJX.Service.Shell.ViewModels.Manual
- {
- public class ManualWindowViewModel : BindableBase
- {
- #region Fields
- private IRegion _region;
- private readonly ILogService _log;
- private readonly IManualService _service;
- private readonly IRegionManager _regionManager;
- private Dictionary<string, string> _items;
- #endregion
- #region Properties
- public ObservableCollection<TabItem> TabItemInfos { get; init; }
- #endregion
- public ManualWindowViewModel(IRegionManager regionManager, ILogService log, IManualService service)
- {
- _regionManager = regionManager;
- _log = log;
- _service = service;
- TabItemInfos ??= new ObservableCollection<TabItem>();
- InitDataAndBind();
- }
- #region Command
- private DelegateCommand _loginLoadingCommand;
- public DelegateCommand LoginLoadingCommand => _loginLoadingCommand ??= new DelegateCommand(ExecuteLoginLoadingCommand);
- private DelegateCommand<string> _menuSelectionChangedCommand;
- public DelegateCommand<string> MenuSelectionChangedCommand => _menuSelectionChangedCommand ??= new DelegateCommand<string>(ExecuteMenuSelectionChangedCommand);
- private DelegateCommand _closingCommand;
- public DelegateCommand ClosingCommand => _closingCommand ??= new DelegateCommand(() =>
- {
- _regionManager.Regions.Remove(RegionNames.ManualRegion);//关闭窗体之前先移除注册项
- });
- #endregion
- #region Execute
- void ExecuteLoginLoadingCommand()
- {
- try
- {
- _region = _regionManager.Regions[RegionNames.ManualRegion];
- _region.RequestNavigate(_items.FirstOrDefault().Value);
- }
- catch (Exception ex)
- {
- _log.ErrorFormat(ex.ToString());
- }
- }
- public void ExecuteMenuSelectionChangedCommand(string elementName)
- {
- try
- {
- if (_items.TryGetValue(elementName, out var value))
- {
- _region.RequestNavigate(value);
- }
- }
- catch (Exception ex)
- {
- _log.ErrorFormat(ex.ToString());
- }
- }
- #endregion
- #region Method
- private void InitDataAndBind()
- {
- _items = _service.ManualTabItems;
- foreach (string item in _items.Keys)
- {
- TabItem tab = new()
- {
- Header = item
- };
- TabItemInfos.Add(tab);
- }
- }
- #endregion
- }
- }
|