public MainWindowVM() { base.DisplayName = "MainWindowViewModel"; StatusVM = new StatusViewModel(); StatusVM.Busy = 0; CameraVM = new CameraViewModel(StatusVM); XYZMotorVM = new XYZAxesViewModel(StatusVM); SpectrometerVM = new SpectrometerViewModel(StatusVM); MeasurementVM = new MeasurementViewModel(CameraVM, XYZMotorVM, SpectrometerVM, StatusVM); CameraVM.AddCameraConnectedSubscriber(new CameraConnectionHandler(OnCameraConnected)); CameraVM.AddRemoveRectMarkerEventSubscriber(new RemoveRectMarkerHandler(MeasurementVM.OnRemovePointListOnRectMarker)); }
public MeasurementViewModel(CameraViewModel cameraVM, XYZAxesViewModel xyzAxesVM, SpectrometerViewModel spectrometerVM, StatusViewModel statusVM) { base.DisplayName = "MeasurementViewModel"; _cameraVM = cameraVM; _xyzAxesVM = xyzAxesVM; _spectrometerVM = spectrometerVM; _statusVM = statusVM; CommandCalibrateRefPoint = new RelayCommand(param => CalibrateRefPoint(), cc => { return(!_statusVM.IsBusy); }); CommandCalibrate = new RelayCommand(param => Calibrate(), cc => { return(!_statusVM.IsBusy); }); CommandCameraSettings = new RelayCommand(param => EditCameraSettings()); CommandMeasure = new RelayCommand(param => Measure(), cc => { return(!_statusVM.IsBusy); }); CommandMotorSettings = new RelayCommand(param => EditMotorSettings()); CommandDisplayMarkedPoints = new RelayCommand(param => DisplayMarkedPoints()); CommandBatchMeasure = new RelayCommand(param => BatchMeasure(), cc => { return(_xyzAxesVM.PositionCount > 1 && !_statusVM.IsBusy); }); CommandToggleLaser = new RelayCommand(param => ToggleLaser()); CommandSpectrumSettings = new RelayCommand(param => EditSpectrumSettings(), cc => { return(_spectrometerVM.SpectrometerConnected); }); CommandToggleLED = new RelayCommand(param => ToggleLED()); CommandMappingMeasure = new RelayCommand(param => MappingMeasure()); }