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

CONTROLE LISTVIEW NÃO APARECE

Fiz diversos testes com o Binding mas não consegui resultado nenhum.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Canola.app.ListaRefeicao" Title="Lista de Refeições">
    <ContentPage.Content>
        <StackLayout Padding="25">
          <ListView ItemsSource="{Binding Refeicoes}">
            <ListView.ItemTemplate>
              <DataTemplate>
                <ViewCell>
                  <ViewCell.View>
                    <StackLayout>
                      <Label Text="{Binding Descricao}" FontSize="12" />
                      <StackLayout Orientation="Horizontal">
                        <Label Text="Calorias:" FontSize="10" />
                        <Label Text="{Binding Calorias}" FontSize="10" />
                      </StackLayout>
                    </StackLayout>
                  </ViewCell.View>
                </ViewCell>
              </DataTemplate>
            </ListView.ItemTemplate>
          </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>
4 respostas

Olá, Leonardo, você pode postar aqui o código do seu code behind (ListaRefeicao.xaml.cs) e também o código do seu ViewModel? Precisamos desse código para tentar reproduzir o problema por aqui.

Obrigado!

ListaRefeicao.xaml.cs

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;

namespace Canola.app
{
    public partial class ListaRefeicao : ContentPage
    {
        public List<Refeicao> Refeicoes;
        public string Nome { get; set; }
        public ListaRefeicao(List<Refeicao> refeicoes)
        {
            this.Nome = "Canola Fruits";
            this.Refeicoes = refeicoes;

            BindingContext = this;                               

            InitializeComponent();
        }
    }
}

VIEW MODEL

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Canola.app
{
    public class Refeicao
    {
        public string Descricao { get; set; }
        public double Calorias { get; set; }

        public Refeicao(string descricao, double calorias)
        {
            this.Descricao = descricao;
            this.Calorias = calorias;
        }
    }
}

Oi Leonardo,

Por favor, coloque um breakpoint nesta linha:

this.Refeicoes = refeicoes;

A lista de refeições está vazia, ou contém elementos? Estou perguntando isso porque o restante do código que você colocou parece estar correto. Precisamos saber se a página de refeições está recebendo uma lista populada de refeições.

solução!

Consegui meu problema foi que eu esqueci de tornar em propriedade a variável Refeicoes.