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

ListaDB|| problema

A lista dos agendamentos não está aparecendo nenhum agendamento

AgendamentoUsuarioViewModel

namespace TesteDrive.ViewModels
{
    public class AgendamentoUsuarioViewModel : BaseViewModel
    {
        ObservableCollection<Agendamento> lista = new ObservableCollection<Agendamento>();
        public ObservableCollection<Agendamento> Lista
        {
            get
            {
                return lista;

            }
            private set
            {
                lista = value;
                OnPropertyChanged();
            }
        }
        public AgendamentoUsuarioViewModel()
        {
            using (var conexao = DependencyService.Get<ISQLite>().PegarConexao()) 
            {
                AgendamentoDAO dao = new AgendamentoDAO(conexao);
                var listaDB = dao.Lista;
                this.lista.Clear();
                foreach(var itemDB in listaDB)
                {
                    this.lista.Add(itemDB);
                }
            }
        } 
    }
}

AgendamentoUsuarioView

namespace TesteDrive.Views
{
    public partial class AgendamentoUsuarioView : ContentPage
    {
        public AgendamentoUsuarioView()
        {
            InitializeComponent();

            this.BindingContext = new AgendamentoUsuarioViewModel();
        }
    }
}

AgendamentoDAO

private List<Agendamento> lista;
        public List<Agendamento> Lista
        {
            get
            {
                return conexao.Table<Agendamento>().ToList();
            }
            private set
            {
                lista = value;
            }
        }

Agendamento

public Agendamento()
        {

        }

Não sei se é pelo fato de eu compilar o programa direto pelo celular tem algo a ver com isso.Mas no celular está gerando o arquivo "Agendamento.db3" com 12.2kb de tamanho

2 respostas
solução!

Olá, Alexander

Comparando seu código com o código da aula, percebi que estão faltando duas partes no seu código:

1. construtor da classe AgendamentoUsuarioViewModel:

        public AgendamentoUsuarioViewModel()
        {
            AtualizarLista();
        }

2. método AtualizarLista

        public void AtualizarLista()
        {
            using (var conexao = DependencyService.Get<ISQLite>().PegarConexao())
            {
                AgendamentoDAO dao = new AgendamentoDAO(conexao);
                var listaDB = dao.Lista;

                var query =
                    listaDB
                    .OrderBy(l => l.DataAgendamento)
                    .ThenBy(l => l.HoraAgendamento);

                this.Lista.Clear();
                foreach (var itemDB in query)
                {
                    this.Lista.Add(itemDB);
                }
            }
        }

Implemente essas partes e veja se resolve!

outro tópico