Segue abaixo meu código, um detalhe em especial é que ao efetuar o "Tap" a descrição é retornada.
<?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="TesteIos.ListaRefeicao"
Page.Title="Lista de refeições">
<StackLayout Padding="25">
<ListView ItemsSource="{Binding Refeicao}" ItemTapped="AcaoItem">
<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>
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace TesteIos
{
public partial class ListaRefeicao : ContentPage
{
public ObservableCollection<Refeicao> Refeicao { get; set; }
public ListaRefeicao(ObservableCollection<Refeicao> refeicoes)
{
BindingContext = this;
this.Refeicao = refeicoes;
InitializeComponent();
}
public async void AcaoItem(Object sender, ItemTappedEventArgs e)
{
Refeicao refeicao = e.Item as Refeicao;
var resposta = await DisplayAlert("Remover item",
"Você tem certeza que deseja remover a refeição " + refeicao.Descricao,
"Sim",
"Não");
if (resposta)
{
Refeicao.Remove(refeicao);
await DisplayAlert("Remover item", "Refeição removida com sucesso", "Ok");
}
}
}
}