public Slide(int startIndex, int endIndex) { _cells = new ObservableCollection <SlideCell>(); for (int i = startIndex; i <= endIndex; i++) { _cells.Add(new SlideCell { Number = i, Value = " " }); } Controller = new SlideControl(Cells); }
public Slide() { _cells = new ObservableCollection <SlideCell>(); for (int i = -10; i <= 10; i++) { _cells.Add(new SlideCell { Number = i, Value = " " }); } Controller = new SlideControl(Cells); }
public void RunStep() { try { var currentSlideName = _slider.Cells.FirstOrDefault(z => z.IsActive == true).Value; if (_executableAlphabetCell == null) { _executableAlphabetCell = _alphabetCells.FirstOrDefault(x => x.Name == currentSlideName); _executableAlphabetCell.IsExecute = true; _executableAlphabetCell.CurrentState = _executableAlphabetCell.States.FirstOrDefault(x => x.Name == "Q1"); } _changeCommand._cells = _alphabetCells; if (!_changeCommand.IsValid(currentSlideName)) { throw new CannotExecuteException("На каретке имеется символ вне алфавита!", currentSlideName); } if (_executableAlphabetCell.CurrentState.Action == null) { throw new CannotExecuteException("Ожидалось действие!", $"Элемент алфавита: {_executableAlphabetCell.Name}\nСостояние: {_executableAlphabetCell.CurrentState.Name}"); } var actionText = _executableAlphabetCell.CurrentState.Action; if (actionText == "end") { _executableAlphabetCell = null; IsEnd = true; } else { SlideControl slideController = _slider.Controller; _changeCommand.Execute(_executableAlphabetCell, _alphabetCells, _slider); _moveCommand.Execute(_executableAlphabetCell, _slider); _setStateCommand.Execute(ref _executableAlphabetCell, _alphabetCells, _slider); } } catch (CannotExecuteException ex) { MessageBox.Show(ex.WrongActionText, $"{ex.Message}, вызвано {ex.TargetSite}"); } }