generated from wenjy/SlnMesnac
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#
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; }
|
|
}
|
|
}
|
|
} |