Dei uma olhada no Forum e vi que varias pessoas estão com o mesmo problema e em nenhum dos tópicos achei uma solução.
Depois de cadastrar a refeição ela não está aparecendo na listagem.
Refeição .cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AluraNutricao
{
public class Refeicao
{
public string Descricao;
public double Calorias;
public Refeicao(String descricao, double calorias)
{
this.Descricao = descricao;
this.Calorias = calorias;
}
}
}
ListaDeRefeiao.xaml
<?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="AluraNutricao.ListaDeRefeicao"
Title="Lista de Refeição">
<ContentPage.Content>
<StackLayout>
<ListView ItemsSource="{Binding Refeicoes}" ItemTapped="AcaoItem">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Label Text="{Binding Descricao}" FontSize="12"/>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Calorias}" FontSize="10"/>
<Label Text="Calorias" FontSize="10"/>
</StackLayout>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
ListaDeRefeicao.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 AluraNutricao
{
public partial class ListaDeRefeicao : ContentPage
{
public ObservableCollection<Refeicao> Refeicoes { get; set; }
public ListaDeRefeicao(ObservableCollection<Refeicao> refeicoes)
{
BindingContext = this;
Refeicoes = refeicoes;
InitializeComponent();
}
public async void AcaoItem(Object sender, ItemTappedEventArgs e)
{
Refeicao refeicao = e.Item as Refeicao;
var resposta = await DisplayAlert("Remover Refeição", "Deseja Remover a Refeição?", "Sim", "Não");
if (resposta)
{
Refeicoes.Remove(refeicao);
await DisplayAlert("Remover Refeição", "Refeição Removida com Sucesso", "OK");
}
}
}
}