using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using SlnMesnac.WPF.Page.ControlPage; using SlnMesnac.WPF.Page.IndexPage; using SlnMesnac.WPF.Page.ManagePage; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; namespace SlnMesnac.WPF.ViewModel.ManagePage { public class BaseManagePageViewModel : ViewModelBase { public BaseManagePageViewModel() { _logger = App.ServiceProvider.GetService>(); SelectedMenuItem = MenuItems[0]; } private readonly ILogger _logger; private AGVManagePage agvManagePage = new AGVManagePage(); private TaskManagePage taskManagePage = new TaskManagePage(); private ModelManagePage modelManagePage = new ModelManagePage(); private PositionManagePage positionManagePage = new PositionManagePage(); private VisionManagePage visionManagePage = new VisionManagePage(); // 菜单项集合 public MenuItem[] MenuItems { get; } = { new MenuItem("任务管理", "task"), new MenuItem("AGV管理", "agv"), new MenuItem("任务模板管理", "model"), new MenuItem("视觉管理", "vision"), new MenuItem("地图点位管理", "position") }; // 当前选中的内容 private object _userContent; public object UserContent { get => _userContent; set => Set(ref _userContent, value); } // 当前选中的菜单项 private MenuItem _selectedMenuItem; public MenuItem SelectedMenuItem { get => _selectedMenuItem; set { Set(ref _selectedMenuItem, value); ControlOnClick(); } } /// /// /// /// private void ControlOnClick() { switch (SelectedMenuItem?.Key) { case "agv": UserContent = agvManagePage; break; case "task": UserContent = taskManagePage; break; case "model": UserContent = modelManagePage; break; case "position": UserContent = positionManagePage; break; case "vision": UserContent = visionManagePage; break; default: UserContent = null!; break; } } // 菜单项模型 public class MenuItem { public MenuItem(string displayName, string key) { DisplayName = displayName; Key = key; } public string DisplayName { get; } public string Key { get; } } } }