Estou com o mesmo problema, a lista de refeições não aparece.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
namespace Nutricao.Model
{
public class Refeicao
{
private String Descricao { get; set; }
private Double Calorias { get; set; }
public Refeicao(){}
public Refeicao(String descricao, Double calorias)
{
Descricao = descricao;
Calorias = calorias;
}
}
}
using Nutricao.Model;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using Xamarin.Forms;
namespace Nutricao
{
public class HomeTabbedPage : TabbedPage
{
public HomeTabbedPage()
{
ObservableCollection<Refeicao> refeicoes = new ObservableCollection<Refeicao>();
this.Children.Add(new MainPage(refeicoes));
this.Children.Add(new ListaRefeicoes(refeicoes));
}
}
}
<?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="Nutricao.ListaRefeicoes"
Title="Lista Refeições">
<ContentPage.Content>
<StackLayout>
<ListView ItemsSource="{Binding Refeicoes}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Label Text="{Binding Descricao}"/>
<StackLayout Orientation="Horizontal">
<Label Text="Calorias: "/>
<Label Text="{Binding Calorias}"/>
</StackLayout>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
using Nutricao.Model;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Nutricao
{
public partial class ListaRefeicoes : ContentPage
{
ObservableCollection<Refeicao> Refeicoes { get; set; }
public ListaRefeicoes(ObservableCollection<Refeicao> refeicoes)
{
BindingContext = this;
Refeicoes = refeicoes;
InitializeComponent();
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Nutricao"
x:Class="Nutricao.MainPage"
Title="Cadastro de Refeições">
<StackLayout Padding="25">
<Label Text="Descrição" />
<Entry Placeholder="Ex:Salada com carne." x:Name="entDescricao"/>
<StackLayout>
<Label Text="Calorias"/>
<Label x:Name="lblCalorias" Text="0"/>
</StackLayout>
<Slider Maximum="1000" Minimum="0" x:Name="sldCalorias" ValueChanged="AtualizaContador"/>
<Button Text="Salvar" Clicked="SalvarRefeicao"/>
</StackLayout>
</ContentPage>
using Nutricao.Model;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace Nutricao
{
public partial class MainPage : ContentPage
{
ObservableCollection<Refeicao> Refeicoes { get; set; }
public MainPage(ObservableCollection<Refeicao> refeicoes)
{
Refeicoes = refeicoes;
InitializeComponent();
}
public void AtualizaContador(Object sender, EventArgs e)
{
double valor = sldCalorias.Value;
lblCalorias.Text = valor.ToString();
}
public void SalvarRefeicao(Object sender, EventArgs e)
{
String descricao = entDescricao.Text;
double valor = sldCalorias.Value;
Refeicao refeicao = new Refeicao(descricao, valor);
Refeicoes.Add(refeicao);
Clear();
String msg = "A refeição "+ descricao + " de "+ valor +" calorias. Foi salva com sucesso!";
DisplayAlert("Salvar refeição", msg, "Ok");
}
public void Clear()
{
sldCalorias.Value = 0;
lblCalorias.Text = "0";
entDescricao.Text = "";
}
}
}