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.

108 lines
3.1 KiB
C#

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<ILogger<BaseManagePageViewModel>>();
SelectedMenuItem = MenuItems[0];
}
private readonly ILogger<BaseManagePageViewModel> _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();
}
}
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
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; }
}
}
}