private static void CopyItemTo(IFolderViewModel folder, int destIndex, PokemonDragDropData data) { folder.InsertPokemon(destIndex, data.Pokemon.Clone()); }
private static void SubstitueItem(IFolderViewModel folder, int destIndex, PokemonDragDropData data) { folder.Pokemons[destIndex].RemoveSelf(); folder.InsertPokemon(destIndex, data.Pokemon.Clone()); }
private static void SwapItem(IFolderViewModel folder, int swapIndex, PokemonDragDropData data) { PokemonViewModel pokemon = data.Pokemon; int originalIndex = data.PokemonIndexInFolder; PokemonViewModel swapPokemon = folder.Pokemons[swapIndex]; folder.RemovePokemon(swapPokemon); data.SourceFolder.RemovePokemon(pokemon); if (data.SourceFolder == folder && swapIndex < originalIndex)//swap within a folder { folder.InsertPokemon(swapIndex, pokemon); folder.InsertPokemon(originalIndex, swapPokemon); /* if (swapIndex < originalIndex) { } else { folder.InsertPokemon(originalIndex, swapPokemon); folder.InsertPokemon(swapIndex, pokemon); } */ } else//swap between folders { data.SourceFolder.InsertPokemon(originalIndex, swapPokemon); folder.InsertPokemon(swapIndex, pokemon); } }
private static void MoveItemTo(IFolderViewModel folder, int destIndex, PokemonDragDropData data) { //remove the origin item to prevent exceeding the size data.SourceFolder.RemovePokemon(data.Pokemon); //adjust index if it is movement within a folder if (folder == data.SourceFolder && destIndex > data.PokemonIndexInFolder) destIndex--; folder.InsertPokemon(destIndex, data.Pokemon); }