private void AddMapping() { var vm = new NewSegmentMappingViewModel(_projectService.Project.Segmenter); if (_dialogService.ShowModalDialog(this, vm) == true) { var mapping = new SegmentMappingViewModel(_projectService.Project.Segmenter, vm.Segment1, vm.Segment2); _mappings.Add(mapping); SelectedMapping = mapping; IsChanged = true; } }
public SegmentMappingsViewModel(IDialogService dialogService, IImportService importService, SegmentMappingViewModel.Factory mappingFactory, NewSegmentMappingViewModel.Factory newMappingFactory) { _dialogService = dialogService; _importService = importService; _mappingFactory = mappingFactory; _newMappingFactory = newMappingFactory; _mappings = new BindableList<SegmentMappingViewModel>(); _newCommand = new RelayCommand(AddMapping); _removeCommand = new RelayCommand(RemoveMapping, CanRemoveMapping); _importCommand = new RelayCommand(Import); _mappings.CollectionChanged += MappingsChanged; }
private void AddMapping() { NewSegmentMappingViewModel vm = _newMappingFactory(); vm.Segment1 = _segment1; vm.Segment2 = _segment2; vm.SegmentsEnabled = _segment1 == null && _segment2 == null; if (_dialogService.ShowModalDialog(this, vm) == true) { SegmentMappingViewModel mapping = _mappingFactory(vm.LeftEnvironment1 + vm.Segment1 + vm.RightEnvironment1, vm.LeftEnvironment2 + vm.Segment2 + vm.RightEnvironment2); SegmentMappingViewModel existingMapping = _mappings.FirstOrDefault(m => (m.Segment1 == mapping.Segment1 && m.Segment2 == mapping.Segment2) || (m.Segment1 == mapping.Segment2 && m.Segment2 == mapping.Segment1)); if (existingMapping == null) { _mappings.Add(mapping); } else { mapping = existingMapping; } SelectedMapping = mapping; } }