Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro de exceção - Agendamento View

Exceção no Agendamento View.

Marcelo, busquei no forum e acabeiencontrando essa resposta para um erro de excessão que me estava sendo retornado no set do :

        public Veiculo Veiculo
        {
            get
            {
                return Agendamento.Veiculo;
            }
            set
            {
                Agendamento.Veiculo = value;
            }
        } .

Na resposta de outro rapaz que postou aqui, econtrei sua resposta dizendo que isso:

  public AgendamentoView(Veiculo veiculo)
        {
            InitializeComponent();
            this.Agendamento.Veiculo = veiculo;
            this.BindingContext = this;
        }

deveria estar assim:

       public AgendamentoView(Veiculo veiculo)
        {
            InitializeComponent();
            this.Agendamento = new Agendamento(); 
            this.Agendamento.Veiculo = veiculo; 
            this.BindingContext = this;
        }

Mas no video 03 da aula 01 do segundo curso do Xamarin, você só faz essa alteração no final do video. Porque ele funcionou no seu da primeira forma e para mim dava essa exceção? Como vou fazendo o exercício enquanto vejo o video, perdi um bom tempo com esse problema.

4 respostas

Olá, Raul

Sinto muito pelo transtorno. Você pode postar aqui a mensagem de erro que ocorre no set desta propriedade?

Agendamento.Veiculo = value;

Pergunto isso pois não estou conseguindo reproduzir o problema. Obrigado!

Boa noite Marcelo, tudo bem?

Estou com um problema semelhante ao do colega. O erro que aparece para mim é "System.NullReferenceException: Object reference not set to an instance of an object." apontando para a linha "agendamento.veiculo = value;", comparei meu código com os do seu vídeo e parece estar igual . Seguem classes AgendamentoView e Agendamento:


using App1.Models;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace App1.Views
{

    public partial class AgendamentoView : ContentPage
    {
        public Agendamento agendamento { get; set; }

        public Veiculo veiculo {
            get
            {
                return agendamento.veiculo;
            }
            set
            {
                agendamento.veiculo = value;
            }
        }
        public string nome {
            get
            {
                return agendamento.nome;
            }
            set
            {
                agendamento.nome = value;
            }
        }
        public string fone {
            get
            {
                return agendamento.fone;
            }
            set
            {
                agendamento.fone = value;
            }
        }
        public string email {
            get
            {
                return agendamento.email;
            }
            set
            {
                agendamento.email = value;
            }
        }

        public DateTime dataAgendamento
        {
            get
            {
                return agendamento.dataAgendamento;
            }
            set
            {
                agendamento.dataAgendamento = value;
            }
        }
        public TimeSpan horaAgendamento
        {
            get
            {
                return agendamento.horaAgendamento;
            }
            set
            {
                agendamento.horaAgendamento = value;
            }
        }


        public AgendamentoView(Veiculo veiculo)
        {
            InitializeComponent();
            this.veiculo = veiculo;
            this.BindingContext = this;
        }

        private void Button_Clicked(object sender, EventArgs e)
        {
            DisplayAlert("Agendamento", 
                string.Format(
                    @"Nome: {0}
                    Fone: {1}
                    E-mail: {2}
                    Data agendamento: {3}
                    Hora Agendamento: {4}", nome,fone,email,dataAgendamento.ToString("dd/MM/yyyy"),horaAgendamento),
                "OK");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Text;

namespace App1.Models
{
    public class Agendamento
    {
        public Veiculo veiculo { get; set; }
        public string nome { get; set; }
        public string fone { get; set; }
        public string email { get; set; }

        DateTime DataAgendamento = DateTime.Today;
        public DateTime dataAgendamento
        {
            get
            {
                return DataAgendamento;
            }
            set
            {
                DataAgendamento = value;
            }
        }
        public TimeSpan horaAgendamento {
            get
            {
                return horaAgendamento;
            }
            set
            {
                horaAgendamento = value;
            }
        }
    }
}
solução!

Olá, José Eduardo

Dê uma conferida no construtor desta classe:

        public AgendamentoView(Veiculo veiculo)
        {
            InitializeComponent();
            this.Agendamento = new Agendamento(); /* faltou esta linha*/
            this.Agendamento.Veiculo = veiculo; /* faltou esta linha*/
            this.BindingContext = this;
        }

é exatamente esse erro que da, que o José Eduardo mencionou;