Removendo o item selecionado da ListView
E aí como estão? Espero que estejam bem. Muitas vezes precisamos deletar um item em especifico de uma ListView e fica aquela questão “Como fazer isso mantendo o MVVM?”. Bem, é isso que mostrarei hoje.
Após criar um projeto Xamarin.Forms do tipo PCL, vamos organizar o projeto conforme a figura 1, logo abaixo.

O nosso modelo de lista é algo bem simples, pois será apenas uma lista de exemplo. O código do nosso modelo pode ser visto na figura 2.

Próximo passo é implementar a BaseViewModel, essa classe é uma receita de bolo e nela eu implemento tudo que irei utilizar nas ViewModels existentes no projeto, assim eu otimizo meu tempo de desenvolvimento.
Como já disse antes, eu sempre sigo um padrão. Então, essa classe é basicamente o mesmo código em todo projeto que crio e o código dela pode ser visto logo abaixo.
Com a BaseViewModel implementada, vamos para a MainViewModel, local em que toda mágica acontecerá. O código completo estará logo abaixo e, logo em seguida, irei explicá-lo mais detalhadamente.
A “mágica” começa a acontecer na linha 11, local em que crio uma propriedade do tipo Lista(nosso modelo) e nomeio como ItemSelecionado(poderia ser qualquer outro nome). Como o próprio nome diz, essa propriedade armazenará o item selecionado. Crio um método para fazer a ação de apagar o item em questão, da linha 26 até a 32. Nesse método, apenas verifico se existe algum item selecionado. Se houver, o item será excluído quando eu apertar o botão.
A View desse projeto também será bem simples e o código dela é este:
Reparem que, no meu controle ListView, o SelectedItem está fazendo um Binding para a propriedade ItemSelecionado, na minha ViewModel. Agora, para finalizar e testar, basta ir no CodeBehind e inserir o BindingContext, como é mostrado na figura 3:

Feito todos os preparativos, basta testar e o resultado será…

Como vocês podem ver no gif acima, quando eu seleciono um item e clico no botão Deletar, o item é apagado. Se não houver item selecionado, o botão não faz nada.
Vou ficando por aqui, espero que tenha sido útil para vocês. Abraços e até a próxima!
Ah… Caso alguém tenha interessa pode baixar o projeto completo no github, por meio deste link: https://github.com/pictos/ListViewDeleteItem