Meu plugin minha vida — Xamarin.Forms.EventAggregatorFala galera,

Tudo beleza?

Em julho do ano passado eu publiquei um artigo chamado O X do Xamarin Forms — Utilizando EventAggregator (Sem o Prism). Muitas pessoas me procuraram , agradeceram e tem utilizado a dica no lugar doMessagingCenter .

Para facilitar mais ainda a utilização em novembro de 2020 eu criei um pacote nuget chamado Xamarin.Forms.EventAggregator e agora depois de 5.560 Downloads! Vim trazer ele aqui no medium para vocês , bora conhece?

Bem Antes de mais nada, para não ser repetitivo se você não sabe o que é a ideia do EventAggregator e como funciona não esqueça de ver o artigo :Utilizando EventAggregator (Sem o Prism)

Se você já leu, bora pro Plugin!

Configurando o PluginVamos ao querido Nuget baixar o pacote Xamarin.Forms.EventAggregator e instalar no projeto compartilhado :

Pronto! Não requer mais configurações :D

Utilizando o PluginVamos criar uma classe para ser nossa mensagem de exemplo :

https://medium.com/media/da6e3b8bc55b3691a10c8894fe1e9dab/hrefAgora vamos criar nossa View Principal que ira receber a mensagem:

https://medium.com/media/03130981006ee4a66de669beeb962b5d/hrefE sua ViewModel :

https://medium.com/media/78e75070256a55397b545001b2c14d3a/hrefpara facilitar a navegação eu utilizei o MVVMHelpers , que inclusive se quiser saber mais eu fiz um artigo sobre ele : O X do Xamarin Forms — MVVM Helpers

Note que nessa ViewModel fizemos a implementação do Plugin, o EventAggregator.Instance.RegisterHandler( TextHandler); Implementa um Handler, que vai ficar registrado “escutando” e esperando receber algo.

Nesse caso ele recebe nossa TextMessage criada anteriormente e sobrescreve o valor da Propriedade Text pelo valor dela. Você pode criar qualquer tipo de Event dependendo da sua necessidade.

Agora vamos criar a pagina que ira enviar a Mensagem :

https://medium.com/media/0128724139e2f4ccff4651e2e27bbf21/hrefE sua ViewModel :

https://medium.com/media/12697c8445ca8d4e34e58d2a6f0b646d/hrefNessa ViewModel nos Chamamos o Método EventAggregator.Instance.SendMessage(TextMessage); Ele é o responsavel por enviar a mensagem para o Handler que ficou escutando o TextMessageEvent da ViewModel anterior.

Agora vamos rodar :

Muito legal né?

Caso não queira utilizar o pacote, pode pegar a implementação do código no repositório oficial.

Mas se preferir o pacote Nuget pode baixar o exemplo no repositório oficial do pacote clicando aqui.

Quer ver outros artigos sobre Xamarin ? Clique aqui.

Espero ter ajudado!

Aquele abraço!