public CadastraDespesaViewModel(CadastraDespesa pai)
        {
            ParentPage = pai;

            this.OkBotao = new Command(async() =>
            {
                // verifica se todos os campos foram informados
                if (ParentPage.DadosOk())
                {
                    // atualizar lista de eventos da aplicação, avisando janela pai que dados foram informados
                    Models.DespesaModel novo = new Models.DespesaModel(0, Descricao, Valor, Pago, DataVencimento);
                    if (ParentPage.dadosDespesa != null)
                    {
                        novo.Id = ParentPage.dadosDespesa.Id;
                    }
                    MessagingCenter.Send <Application, Models.DespesaModel>(App.Current,
                                                                            "CadastraDespesa", novo);

                    // encerrar tela
                    var telaInicial = Application.Current.MainPage as Views.MasterDetailPrincipal;
                    await telaInicial.PopAsync();
                }
            });

            this.DeleteCommand = new Command(async() =>
            {
                if (ParentPage.dadosDespesa == null)
                {
                    await ParentPage.DisplayAlert("Erro", "Dados não podem ser eliminados", "OK");
                }
                else
                {
                    var resposta = await ParentPage.DisplayAlert("Elimina Registro",
                                                                 "Confirma eliminação do registro?", "Sim", "Não");
                    if (resposta)
                    {
                        MessagingCenter.Send <Application, Models.DespesaModel>(App.Current,
                                                                                "DeleteDados", ParentPage.dadosDespesa);


                        var telaInicial = Application.Current.MainPage as Views.MasterDetailPrincipal;
                        await telaInicial.PopAsync();
                    }
                }
            });
        }
예제 #2
0
        public CadastraDespesa(Models.DespesaModel despesa = null)
        {
            dadosDespesa = despesa;


            InitializeComponent();
            viewModel           = new CadastraDespesaViewModel(this);
            this.BindingContext = viewModel;

            // mostra dados da agenda corrente
            if (despesa != null)
            {
                viewModel.Descricao      = despesa.Descricao;
                viewModel.Valor          = despesa.Valor;
                viewModel.Pago           = despesa.Pago;
                viewModel.DataVencimento = despesa.DataVencimento;

                viewModel.InformaAlteracao("Descricao");
                viewModel.InformaAlteracao("Valor");
                viewModel.InformaAlteracao("Pago");
                viewModel.InformaAlteracao("DataVencimento");
            }
        }