none
Como passar parâmetros de uma Page para uma ViewModel com Xamarin Forms?

    Pergunta

  • Boa  noite a todos,

    estou desenvolvendo uma aplicação com xamarin forms, e preciso fazer uma navegação entre páginas. 

    Ao realizar a navegação para próxima página, preciso levar junto o id selecionado e realizar uma consulta na viewmodel atrelada a essa page. Estou utilizando o padrão MVVM. 

    Alguém pode me explicar como realizar tal ação. 

    Desde já, obrigado.

    domingo, 22 de janeiro de 2017 23:20

Todas as Respostas

  • Olá,

    Olha se esses links te ajudam:

    https://forums.xamarin.com/discussion/43709/passing-objects-between-pages

    http://www.randrade.net/2016/11/23/mvvm-no-xamarin-forms-usando-metodos-na-viewmodel-com-parametros/

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 23 de janeiro de 2017 16:02
  • Para trabalhar com Xamarin, é necessário conhecer a arquitetura MVVM, nessa arquitetura para cada controle caixa de texto, label, imagem... tudo que tem na Page, deve existir uma propriedade com databind criada na ViewModel e vc deve manipular essa propriedade igual se faz como se vc estive em uma aplicação Windows Forms, 

    Infelizmente nem todos os controles do XamarinForms possuem DataBind, aí tem que fazer uma "Gambiarras" para que eles passem ter, por exempli o gridView.

    Eu utilizo o MVVM Helper, que é uma biblioteca de auxilio de mvvm. Tem melhores, mas comecei nessa meu projeto e fui até o fim. (Atende perfeitamente).

    Exemplo de controle na Page recebendo a propriedade  

    <Label  Text="{Binding Modelo}" FontSize="20" TextColor="Red" HorizontalTextAlignment="End"/>

    Na ViewModel

    private string modelo;
            public string Modelo
            {
                get { return modelo; }
                set
                {
                    SetProperty(ref modelo, value); 
                }
            }

    No metodo da ViewModel

    public void SetMarca()

    {

    Modelo = "Sansung";

    }

    sexta-feira, 7 de julho de 2017 17:53