Pick Selected Row in DataGrid Xamarin

0

I'm developing an application in Xamarin-Forms using the MVVM standard and I'm having the following difficulty. In one of my screens I am using a DataGrid to display some information separated by rows and columns, when the user clicks on one of the lines I need to trigger an event using a Binding, however I have this difficulty. I would like to know how to construct this method that receives the ItemSelected event from the DataGrid, using the MVVM template. I tried using a {get; set;} which receives an object from my class that populates the DataGrid, but it did not work.

My View Code:

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; }
    }
}
    
asked by anonymous 19.03.2018 / 11:36

0 answers