public PokemonEditorViewModel(IPokemonRepository pokemonRepository, IPokemonTypeRepository typeRepository, IPokemonSerializer pokemonSerializer) { Check.IfIsNull(pokemonRepository).Throw<ArgumentNullException>(() => pokemonRepository); Check.IfIsNull(typeRepository).Throw<ArgumentNullException>(() => typeRepository); Pokemons = new ObservableCollection<IPokemon>(pokemonRepository.SelectAll()); PokemonTypes = new ObservableCollection<IPokemonType>(typeRepository.SelectAll()); AddNewPokemonCommand = new Command(AddNewPokemon); DeletePokemonCommand = new Command(DeletePokemon, CanDeletePokemon); SavePokemonCommand = new Command(SavePokemon); this.pokemonSerializer = pokemonSerializer; }