public void DoRemove(object obj) { if(obj is MotionControllerViewModel) { MotionControllerViewModel mcvw = (MotionControllerViewModel) obj; mcvw.Cleanup(); } else if (obj is CameraViewModel) { CameraViewModel scvw = (CameraViewModel) obj; scvw.Cleanup(); } else if(obj is ClientViewModel) { ClientViewModel cvw = (ClientViewModel) obj; cvw.Cleanup(); } }
/// <summary> /// Initializes a new instance of the AllCamerasViewModel class. /// </summary> public CamerasViewModel() { CamerasModel.Name = "all"; CamerasModel.Cameras = new ObservableCollection<CameraModel>(); CamerasModel.Controllers = new ObservableCollection<MotionControllerModel>(); Refresh(); MultipleViewsService = new MultipleViewsService(); MultipleViewsService.Initialize(_camerasModel, CameraViewModels.Select(camera => camera.TrackerService).ToList()); Messenger.Default.Register<AddCameraMessage>(this, message => { CameraViewModel cvm = SimpleIoc.Default.GetInstance<CameraViewModel>(message.Camera.GUID); CameraViewModels.Add(cvm); CamerasModel.Cameras.Add(cvm.Camera); MultipleViewsService.TrackerServices.Add(cvm.TrackerService); }); Messenger.Default.Register<RemoveCameraMessage>(this, message => { if(SimpleIoc.Default.ContainsCreated<CameraViewModel>(message.Camera.GUID)) { CameraViewModel cvm = SimpleIoc.Default.GetInstance<CameraViewModel>(message.Camera.GUID); CameraViewModels.Remove(cvm); CamerasModel.Cameras.Remove(cvm.Camera); MultipleViewsService.TrackerServices.Remove(cvm.TrackerService); } }); Messenger.Default.Register<AddMotionControllerMessage>(this, message => { CamerasModel.Controllers.Add(message.MotionController); }); Messenger.Default.Register<RemoveMotionControllerMessage>(this, message => { CamerasModel.Controllers.Remove(message.MotionController); }); if(IsInDesignMode) { CamerasModel.Cameras.Add(new CameraViewModel().Camera); CamerasModel.Cameras.Add(new CameraViewModel().Camera); CamerasModel.Cameras.Add(new CameraViewModel().Camera); CamerasModel.Cameras.Add(new CameraViewModel().Camera); CamerasModel.Controllers.Add(new MotionControllerModel()); CamerasModel.Controllers.Add(new MotionControllerModel()); } else { if (SimpleIoc.Default.GetInstance<SettingsViewModel>().Settings.LoadCamerasOnStartup) { AddAvailableCameras(); } if(SimpleIoc.Default.GetInstance<SettingsViewModel>().Settings.Debug) { new CameraViewModel(); new CameraViewModel(); new CameraViewModel(); new CameraViewModel(); } } }
void CameraView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (e.OldValue is CameraViewModel) { //Console.WriteLine("old " + ((CameraViewModel)e.OldValue).Camera.Name); } if (e.NewValue is CameraViewModel) { //Console.WriteLine("new " + ((CameraViewModel)e.NewValue).Camera.Name); _viewModel = (CameraViewModel)DataContext; ApplySelectionButton.Command = ApplySelectionCommand; CancelSelectionButton.Command = CancelSelectionCommand; CalibrateButton.Command = CalibrateCameraCommand; } }