Removendo o item selecionado da ListView

Pedro Jesus
Jul 20, 2017 · 3 min read

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.

Figura 1 — Gerenciador de Soluções

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.

Figura 2 — Modelo da Lista

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:

Figura 3 — CodeBehind da MainPage

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

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade