O X do Xamarin Forms — Triggers

Fala galera,

beleza?

Algumas vezes precisamos alterar o comportamento de um controle de nossa interface de acordo com alterações que ocorrem na execução de nosso APP.

Por exemplo queremos mudar a cor de fundo de um entry se uma determinada validação estiver incorreta. No caso criaríamos uma variável em nosso entry, efetuaríamos o Binding e de acordo com o que acontece a mudaríamos o comportamento no código.

Mas ai vem a pergunta? Quando eu faço isso ? Na interface? na View Model? no Evento ?

Existe uma forma muito melhor de resolver isso no Xamarin.Forms, e é chamada de Trigger!

Bora conhecer :D

O Xamarin.Forms possui 4 tipos de triggers, que acredito que atendam basicamente todas as suas (ou quase) necessidades.

São elas :

Property Triggers são usadas quando você deseja alterar uma propriedade do controle de acordo com um valor específico de outra propriedade.

Em outras palavras é a trigger mais simples de implementar, podemos alterar um comportamento de acordo com um valor pré definido.

Por exemplo quero alterar o background do meu Entry quando eu escrever bertuzzi. Apenas preciso fazer :

Utilizando a tag Trigger, E então :

São muito parecidas com as Property Triggers, só que podemos utilizar valores da nossa ViewModel ou até de outras propriedades por exemplo :

Enquanto o nome não for preenchido , não sera habilitado o sobrenome. Notem que estou utilizando um campo que faz bindind na viewmodel para isso, utilizando a tag DataTrigger :

Este como o nome diz é ativado quando ocorre um evento. Por exemplo imagine que eu quero mudar a cor de um botão quando ele é acionado.

Primeiro precisamos criar a trigger utilizando a base TriggerAction:

E então implementar no botão utilizando a tag EventTrigger :

Rodando :

Mesmo conceito do DataTrigger, porem podemos combinar diversos cenários para executar a mesma. Por exemplo um botão de Entrar que só habilita se o Login e Senha foram preenchidos de forma correta, utilizamos a tag MultiTrigger :

Então temos :

Em resumo, Triggers podem facilitar muito nossa implementação e onde implementar determinados eventos :D

Curtiram?

Caso queira baixar o código utilizado no Exemplo: Clique aqui.

Quer ver outros artigos sobre Xamarin ? Clique aqui.

Espero ter ajudado!

Aquele abraço!

Microsoft MVP,Gamer, Desenvolvedor e apaixonado por tecnologia!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store