public CameraViewModel( CameraModel camera, ITrackerService trackerService, ICameraService cameraService, IConsoleService consoleService, HelixCameraVisualizationService visualizationService) { Camera = camera; TrackerService = trackerService; CameraService = cameraService; ConsoleService = consoleService; VisualizationService = visualizationService; CameraService.Initialize(Camera); TrackerService.Initialize(Camera); VisualizationService.Initialize(Camera); if (!IsInDesignMode) { Messenger.Default.Register<AddMotionControllerMessage>(this, message => { TrackerService.AddMotionController(message.MotionController); }); Messenger.Default.Register<RemoveMotionControllerMessage>(this, message => { TrackerService.RemoveMotionController(message.MotionController); }); // add existing controllers foreach (MotionControllerViewModel mcvw in SimpleIoc.Default.GetAllCreatedInstances<MotionControllerViewModel>()) { TrackerService.AddMotionController(mcvw.MotionController); } SimpleIoc.Default.Register(() => this, Camera.GUID, true); Messenger.Default.Send(new AddCameraMessage(Camera)); // try loading previously saved configurations for this camera SimpleIoc.Default.GetInstance<ISettingsService>().LoadCamera(camera); Camera.Calibration = SimpleIoc.Default.GetInstance<SettingsViewModel>().SettingsService.LoadCalibration(Camera.GUID); } }