private void CellDataProviderChanged(ICellDataProvider oldProvider, ICellDataProvider newProvider) { RemoveUnactualField(oldProvider); if (newProvider == null) { CellDataProvider = new EmptyCellDataProvider(); } CellDataProvider.Gameover += OnGameOver; _mineFieldLogic.CellDataProvider = newProvider; DrawNewField(); }
private void NewGame() { if (DataProvider != null) { DataProvider.Gameover -= OnGameover; } CurrentEmotionType = EmotionType.Common; DataProvider = _fieldGenerator[_currentMode](); SecondsGone = 0; BombsLeft = DataProvider.BombsCount; _timer.Stop(); }
private void RemoveUnactualField(ICellDataProvider oldProvider) { if (oldProvider == null) { return; } RowDefinitions.Clear(); ColumnDefinitions.Clear(); _buttons.ForEach(RemoveLogicalChild); _buttons.ForEach( (button => { RemoveLogicalChild(button); button.InputBindings.Clear(); })); _buttons = null; }