Estou com problemas ao gerar o display com a mensagem que o veiculo foi tocado. Aparecendo a seguinte mensagem:
Xamarin.Forms.Xaml.XamlParseException: Position 8:12. No method listViewVeiculos_ItemTapped found on type App1.MainPage
Meu xml está assim:
<?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:App1"
x:Class="App1.MainPage">
<ListView x:Name="listViewVeiculos" ItemsSource="{Binding Veiculos}" Margin="25" ItemTapped="listViewVeiculos_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Horizontal">
<Label Text ="{Binding Nome}" FontSize="20" VerticalTextAlignment="Center"></Label>
<Label Text =" - " VerticalTextAlignment="Center"></Label>
<Label Text ="{Binding PrecoFormatado}" FontAttributes="Bold" VerticalTextAlignment="Center"></Label>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
E minha classe está assim:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace App1
{
public class Veiculo
{
public string Nome { get; set; }
public decimal Preco { get; set; }
public string PrecoFormatado
{
get { return string.Format("R$ {0}", Preco); }
}
}
public partial class MainPage : ContentPage
{
public List<Veiculo> Veiculos { get; set; }
public MainPage()
{
InitializeComponent();
this.Veiculos = new List<Veiculo>
{
new Veiculo {Nome = "Azera V6", Preco = 60000 },
new Veiculo {Nome = "Fiesta 2.0", Preco = 50000 },
new Veiculo {Nome = "HB20 S", Preco = 40000 }
};
this.BindingContext = this;
}
private void listViewVeiculos_ItemTapped(object sender, ItemTappedEventArgs e)
{
var veiculo = (Veiculo)e.Item;
DisplayAlert("Test Drive", string.Format("Você tocou no modelo '{0}', que custa {1}", veiculo.Nome, veiculo.PrecoFormatado), "ok");
}
}
}