public SlaveViewModel(IModbusAdapterProvider modbusAdapterProvider, SlaveModel slaveModel, IDirty dirty) { _modbusAdapterProvider = modbusAdapterProvider; _dirty = dirty; if (slaveModel == null) throw new ArgumentNullException(nameof(slaveModel)); Name = slaveModel.Name; SlaveId = slaveModel.SlaveId; AddRegistersCommand = new RelayCommand(AddRegisters, CanAdd); if (slaveModel.Ranges != null) { foreach (var range in slaveModel.Ranges) { var rangeViewModel = new RegisterRangeViewModel(modbusAdapterProvider, range, this, _dirty); _ranges.Add(rangeViewModel); } } RenameCommand = new RelayCommand(Rename, CanRename); }
private void AddRegisters() { var rangeModel = new RangeModel() { Name = CreateNewRangeName(), StartIndex = 1, RegisterType = RegisterType.Holding, IsExpanded = true }; var rangeEditorViewModel = new RegisterRangeEditorViewModel(rangeModel); var dialog = new RegisterRangeEditorView() { DataContext = rangeEditorViewModel }; if (dialog.ShowDialog() == true) { var updatedRangeModel = rangeEditorViewModel.GetModel(); var rangeViewModel = new RegisterRangeViewModel(_modbusAdapterProvider, updatedRangeModel, this, _dirty); _ranges.Add(rangeViewModel); _dirty.MarkDirtySafe(); } }