• Skip to content
  • Skip to primary sidebar
  • Skip to footer

R Andrade

Blog do Paulo Roberto - Desenvolvimento e arquitetura

Usando a passagem simples de parâmetros no MessagingCenter do Xamarin.Forms

15 de setembro de 2017 by Paulo Roberto Ramos de Andrade 1 Comment

Olá pessoal! Tudo bem? Vamos então continuar falando sobre o MessagingCenter do Xamarin.Forms. Depois de aprendermos como aplicar o MessagingCenter de forma básica, vamos aprender como funciona a passagem básica de parâmetros entre o Publisher e o Subscriber.

Como sempre, fique à vontade para baixar o código fonte deste artigo para estudos.

Novamente, vamos criar uma interface bem simples para nosso app de exemplo, com apenas dois botões – um para ativar o Publisher e outro para o Subscriber.

<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
    <Button Text="Enviar mensagem via MessagingCenter (Publisher)" Clicked="EnviarMensagem_Clicked" />
    <Button Text="Receber mensagem via MessagingCenter (Subscriber)" Clicked="ReceberMensagem_Clicked" />
</StackLayout>

Antes de trabalharmos no MessagingCenter, vamos criar uma propriedade pública ou acesso de escrita privado para armazenar data. É esta propriedade que vamos usar no exemplo da passagem básica de parâmetros.

public DateTime DataDeEnvioDaMensagem { get; private set; }

No método EnviarMensagem_Clicked, que estamos usando para enviar mensagens via MessagingCenter, adicionamos um valor na propriedade DataDeEnvioDaMensagem e enviamos a mensagem.

Mais uma vez, estamos fazendo que com que um objeto do tipo MainPage envie a mensagem com a identificação "msg" – e como estamos fazendo que a própria MainPage que estamos trabalhando seja o objeto que envia a mensagem (já que estamos usando this como primeiro parâmetro), a atribuição de DataDeEnvioDaMensagem é passada pelo MessagingCenter.

private void EnviarMensagem_Clicked(object sender, EventArgs e)
{
    DataDeEnvioDaMensagem = DateTime.Now;
    MessagingCenter.Send(this, "msg");
}

No método ReceberMensagem_Clicked, vamos usar a forma MessagingCenter.Subscribe, para que mensagens enviadas por qualquer objeto do tipo MainPage possam ser captadas. Só que não é só qualquer tipo de mensagem, é qualquer mensagem que tenha a identificação "msg".

Como já explicado no artigo anterior, o último parâmetro do método Subscribe é a Action que será executada quando a mensagem for recebida. Pois bem, o primeiro parâmetro desta Action é sempre o objeto que disparou a mensagem.

Neste caso, como é uma MainPage que disparou a mensagem, o parâmetro page (que pode ter qualquer outro nome) é uma MainPage. E como nós configuramos a propriedade DataDeEnvioDaMensagem antes de enviar a mensagem, este mesmo valor pode ser resgatado e usado dentro da Action. Veja o código:

private void ReceberMensagem_Clicked(object sender, EventArgs e)
{
    MessagingCenter.Subscribe<MainPage>(this, "msg", async page =>
    {
        await DisplayAlert("Atenção", $"mensagem recebida às {page.DataDeEnvioDaMensagem:HH:mm:ss}", "Ok");
    });
}

Veja o resultado:


E aprendemos como o próprio objeto que dispara a mensagem via MessagingCenter pode ser obtido e usado pelos Subscribers. Até a próxima!

[]’s
Paulo Roberto

Filed Under: C#, Mobile, Todas as postagens, Xamarin, Xaml Tagged With: .net, abstracao xamarin.forms, c#, messagingcenter xamarin.forms, mobile, navegação xamarin.forms, visual studio, xamarin, xamarin.android, xamarin.forms, xamarin.ios, Xaml

Publicidade

Primary Sidebar

Quem sou eu

Meu nome é Paulo Roberto e tenho 32 anos, com 12 anos de experiência na área. Sou desenvolvedor, autodidata, iniciante nas artes da arquitetura de softwares, eterno interessado em aprender mais técnicas e tecnologias e também interessado em documentar e repassar o pouco que já sei.

Acompanhe o blog nas redes sociais

  • Email
  • Facebook
  • Github
  • Linkedin
  • Twitter

Publicidade

O que foi mais lido no último mês

  • Apagando dados com SQLite, C# e sqlite-net-pcl
  • Trabalhando com o simulador do iOS
  • Convertendo tabelas HTML em arquivos Excel no Front End
  • Todas as operações CRUD com SQLite no Xamarin.Forms

Categorias

Arquitetura de Sistemas ASP.NET MVC ASP.NET Web Api Autenticação e Autorização C# Cors Dicas e Truques Entity Framework JavaScript Mobile N Camadas OWIN Pessoal Segurança Sites que ajudam Softwares Todas as postagens Unit Testing Virtualização Xamarin Xaml

Footer

Pesquisar

Arquivo do blog

Copyright © 2019 · Magazine Pro on Genesis Framework · WordPress · Log in