internal void SelectBrush(MultiTileBrush multiTileBrush)
        {
            var args = new TileBrushSelectedEventArgs() { TileBrush = multiTileBrush };
            ViewModelMediator.Current.GetEvent<TileBrushSelectedEventArgs>().Raise(this, args);

            SelectedBrush = multiTileBrush;
            OnPropertyChanged("SelectedBrush");
        }
        public override void ChangeTile(Tile tile)
        {
            if (_ignoreTileChanged)
                return;

            // prevent infinite recursion
            _ignoreTileChanged = true;
            var args = new TileBrushSelectedEventArgs() { TileBrush = tile != null ? new SingleTileBrush(tile) : null };
            ViewModelMediator.Current.GetEvent<TileBrushSelectedEventArgs>().Raise(this, args);
            _ignoreTileChanged = false;

            SelectedBrush = null;
            OnPropertyChanged("SelectedTile");
            OnPropertyChanged("SelectedBrush");
        }