public RPlotDeviceVisualComponent(IRPlotManager plotManager , int instanceId , IVisualComponentContainer <IRPlotDeviceVisualComponent> container , IServiceContainer services) { Check.ArgumentNull(nameof(plotManager), plotManager); Check.ArgumentNull(nameof(plotManager), plotManager); _mainThread = services.MainThread(); _viewModel = new RPlotDeviceViewModel(plotManager, _mainThread, instanceId); var control = new RPlotDeviceControl { DataContext = _viewModel, }; _disposableBag = DisposableBag.Create <RPlotDeviceVisualComponent>() .Add(() => control.ContextMenuRequested -= Control_ContextMenuRequested) .Add(() => _viewModel.DeviceNameChanged -= ViewModel_DeviceNameChanged) .Add(() => _viewModel.LocatorModeChanged -= ViewModel_LocatorModeChanged) .Add(() => _viewModel.PlotChanged -= ViewModel_PlotChanged) .Add(() => plotManager.ActiveDeviceChanged -= PlotManager_ActiveDeviceChanged); control.ContextMenuRequested += Control_ContextMenuRequested; _viewModel.DeviceNameChanged += ViewModel_DeviceNameChanged; _viewModel.LocatorModeChanged += ViewModel_LocatorModeChanged; _viewModel.PlotChanged += ViewModel_PlotChanged; plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged; Control = control; Container = container; }
public RPlotDeviceVisualComponent(IRPlotManager plotManager, ICommandTarget controller, int instanceId, IVisualComponentContainer <IRPlotDeviceVisualComponent> container, ICoreShell coreShell) { if (plotManager == null) { throw new ArgumentNullException(nameof(plotManager)); } if (container == null) { throw new ArgumentNullException(nameof(container)); } if (coreShell == null) { throw new ArgumentNullException(nameof(coreShell)); } _plotManager = plotManager; _viewModel = new RPlotDeviceViewModel(plotManager, coreShell, instanceId); _shell = coreShell; var control = new RPlotDeviceControl { DataContext = _viewModel, }; _disposableBag = DisposableBag.Create <RPlotDeviceVisualComponent>() .Add(() => control.ContextMenuRequested -= Control_ContextMenuRequested) .Add(() => _viewModel.DeviceNameChanged -= ViewModel_DeviceNameChanged) .Add(() => _viewModel.LocatorModeChanged -= ViewModel_LocatorModeChanged) .Add(() => _viewModel.PlotChanged += ViewModel_PlotChanged) .Add(() => _plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged); control.ContextMenuRequested += Control_ContextMenuRequested; _viewModel.DeviceNameChanged += ViewModel_DeviceNameChanged; _viewModel.LocatorModeChanged += ViewModel_LocatorModeChanged; _viewModel.PlotChanged += ViewModel_PlotChanged; _plotManager.ActiveDeviceChanged += PlotManager_ActiveDeviceChanged; Control = control; Controller = controller; Container = container; }