120 lines
4.0 KiB
C#
120 lines
4.0 KiB
C#
using MainShell.Hardware;
|
||
using MainShell.Models;
|
||
using MainShell.Recipe.Models;
|
||
using MaxwellFramework.Core.Common;
|
||
using MaxwellFramework.Core.Interfaces;
|
||
using MwFramework.ManagerService;
|
||
using MXJM.Parameter.Maintance;
|
||
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.DeviceMaintance.ViewModel
|
||
{
|
||
public class NeedleBaseViewModel : CameraBaseViewModel, IPage
|
||
{
|
||
private readonly Dictionary<string, Screen> _screenDics = new Dictionary<string, Screen>();
|
||
|
||
private const string NEEDLE_CAMERA_CALIB = "针尖相机校准";
|
||
private const string CAMERA_ACCURACY_CALIB = "针印检测";
|
||
private const string NEEDLECALIB = "针尖对刀检查";
|
||
|
||
private Screen _currentScreen;
|
||
public Screen CurrentScreen
|
||
{
|
||
get => _currentScreen;
|
||
set { SetAndNotify(ref _currentScreen, value); }
|
||
}
|
||
|
||
private ObservableCollection<string> _navigationItems = new ObservableCollection<string>();
|
||
public ObservableCollection<string> NavigationItems
|
||
{
|
||
get => _navigationItems;
|
||
set
|
||
{
|
||
_navigationItems = value;
|
||
OnPropertyChanged(nameof(NavigationItems));
|
||
}
|
||
}
|
||
|
||
private string _selectedItem;
|
||
public string SelectedItem
|
||
{
|
||
get => _selectedItem;
|
||
set
|
||
{
|
||
_selectedItem = value;
|
||
OnPropertyChanged(nameof(SelectedItem));
|
||
// 当选择项改变时,更新当前ViewModel
|
||
if (_selectedItem != null)
|
||
{
|
||
CurrentScreen = _screenDics[value];
|
||
}
|
||
}
|
||
}
|
||
|
||
private NeedleCaliViewModel _needleCaliViewModel;
|
||
[Inject]
|
||
public NeedleCaliViewModel NeedleCaliViewModel
|
||
{
|
||
get { return _needleCaliViewModel; }
|
||
set { _needleCaliViewModel = value; }
|
||
}
|
||
|
||
private NeedleCameraPrintViewModel _needleCameraPrintViewModel;
|
||
[Inject]
|
||
public NeedleCameraPrintViewModel NeedleCameraPrintViewModel
|
||
{
|
||
get { return _needleCameraPrintViewModel; }
|
||
set { _needleCameraPrintViewModel = value; }
|
||
}
|
||
|
||
private CameraAccuracyCalibrationViewModel _cameraAccuracyCalibrationViewModel;
|
||
[Inject]
|
||
public CameraAccuracyCalibrationViewModel CameraAccuracyCalibrationViewModel
|
||
{
|
||
get { return _cameraAccuracyCalibrationViewModel; }
|
||
set { _cameraAccuracyCalibrationViewModel = value; }
|
||
}
|
||
private HardwareManager _hardwareManager;
|
||
public NeedleBaseViewModel(HardwareManager hardwareManager)
|
||
{
|
||
_hardwareManager = hardwareManager ?? throw new ArgumentNullException(nameof(hardwareManager));
|
||
_cameraAxisViewModel = IoC.Get<Common.Display.ViewModel.CameraAxisViewModel>();
|
||
_cameraAxisViewModel.CameraAxisDevices.HardwareDeviceList = hardwareManager.CameraAxisManager.TopCameraAxisDevices;
|
||
InitNavigationItems();
|
||
}
|
||
|
||
protected override void OnViewLoaded()
|
||
{
|
||
base.OnViewLoaded();
|
||
if (_screenDics.Count == 0)
|
||
{
|
||
InitScreenDics();
|
||
}
|
||
if (SelectedItem == null)
|
||
SelectedItem = NavigationItems[0];
|
||
}
|
||
|
||
public void InitNavigationItems()
|
||
{
|
||
NavigationItems.Add(NEEDLE_CAMERA_CALIB);
|
||
NavigationItems.Add(CAMERA_ACCURACY_CALIB);
|
||
NavigationItems.Add(NEEDLECALIB);
|
||
}
|
||
|
||
public void InitScreenDics()
|
||
{
|
||
_screenDics.Add(NEEDLE_CAMERA_CALIB, NeedleCameraPrintViewModel);
|
||
_screenDics.Add(NEEDLECALIB, NeedleCaliViewModel);
|
||
_screenDics.Add(CAMERA_ACCURACY_CALIB, CameraAccuracyCalibrationViewModel);
|
||
}
|
||
|
||
}
|
||
}
|