3
respostas

System.NullReferenceException: Object reference not set to an instance of an object.

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;
            }
        }
    }
}
editar

Marcelo Oliveira (503.7k xp, 988 posts) Moderador 3 semanas atrás 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;
        }

Raul Guilherme Demonte Pontes (50.7k xp, 27 posts) 3 semanas atrás é exatamente esse erro que da, que o José Eduardo mencionou;

3 respostas

Boa tarde Marcelo, tudo bem?

Desculpa a demora para continuar o assunto, algumas questões fizeram com que houvesse uma pausa no curso.

Sobre a solução que você sugeriu, eu já havia tentado, porém a aplicação simplesmente trava ao clicar no botão próximo na tela de acessórios e se você observar no vídeo "03. Model de Detalhe Agendamento" entre os 10:00 e 10:15 minutos você testa a aplicação com sucesso sem essas linhas no construtor.

Tem mais alguma coisa que posso postar para facilitar a identificação do problema?

Att.

Fala ai Jose, tudo bem ?

Cara será que não vale continuar a conversa por aquela thread mesmo ?