0
I am developing an application in Xamarin-Forms using the MVVM standard and I have the following difficulty. On one of my screens I’m using a Datagrid to display some information separated by rows and columns, when the user clicks on one of the rows I need to trigger an event using a Binding, but I’m having this difficulty. I would like to know how to build this method that receives the Itemselected event from Datagrid, using the MVVM model. I tried using a {get; set;} method that receives an object from my class that fills the Datagrid, but it didn’t work.
Code of My View:
namespace AprovacaoMetagal.ViewModel
{
public class DetAprovViewModel : BaseViewModel
{
public Aprovacao aprovacao { get; set; }
private Aprovacao aprovacaoSelect;
public Aprovacao AprovacaoSelecionadaDet
{
get
{
return aprovacaoSelect;
}
set
{
aprovacaoSelect = value;
if (aprovacaoSelect != null)
{
MessagingCenter.Send(aprovacaoSelect, "AprovacaoSelecionadaDetalheDet");
}
}
}
public ObservableCollection<AprovacaoListagem> listaDetalhes { get; set; }
public ObservableCollection<AprovacaoListagem> ListaDetalhes
{
get
{
return listaDetalhes;
}
set
{
this.listaDetalhes = value;
}
}
public DetAprovViewModel(Aprovacao aprovacao)
{
this.aprovacao = aprovacao;
this.listaDetalhes = new ObservableCollection<AprovacaoListagem>();
AprovacaoCommand = new Command(() =>
{
MessagingCenter.Send<Aprovacao>(aprovacao, "AprovacaoSelecionadaDetalheDet");
});
CarregarListaDetalhes();
}
public void CarregarListaDetalhes()
{
this.ListaDetalhes.Clear();
if(this.aprovacao.TipoDocumento==1)
{
this.ListaDetalhes = new ObservableCollection<AprovacaoListagem>
{
new AprovacaoListagem { Aprovacao = 195053,Data = new DateTime(2018,03,02).ToShortDateString(),Perfil="Gerente"},
new AprovacaoListagem { Aprovacao = 195552,Data = new DateTime(2018,03,10).ToShortDateString(),Perfil="Diretor"},
};
}
else if(this.aprovacao.TipoDocumento==5)
{
this.ListaDetalhes = new ObservableCollection<AprovacaoListagem>
{
new AprovacaoListagem { Aprovacao = 196053,Data = new DateTime(2018,03,02).ToShortDateString(),Perfil="Gerente"},
new AprovacaoListagem { Aprovacao = 196552,Data = new DateTime(2018,03,10).ToShortDateString(),Perfil="Conselho"},
new AprovacaoListagem { Aprovacao = 196852,Data = new DateTime(2018,03,10).ToShortDateString(),Perfil="Diretor"},
};
}
else
{
this.ListaDetalhes = new ObservableCollection<AprovacaoListagem>
{
new AprovacaoListagem { Aprovacao = 195553,Data = new DateTime(2018,03,02).ToShortDateString(),Perfil="Gerente"},
new AprovacaoListagem { Aprovacao = 196552,Data = new DateTime(2018,03,10).ToShortDateString(),Perfil="Custos"},
new AprovacaoListagem { Aprovacao = 196852,Data = new DateTime(2018,03,10).ToShortDateString(),Perfil="Diretor"},
};
}
}
public ICommand AprovacaoCommand { get; private set; }
}
}
Would you have your code? So it will be easier for the community to help you.
– perozzo
Datagrid? Is some component external to XF?
– Diego Rafael Souza