Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/MainShell/DeviceMaintance/ViewModel/NeedleBaseViewModel.cs
Shi.Ji e31d3560bb 添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
2026-05-18 11:43:09 +08:00

120 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}
}