Não consigo fazer o bind dos veículos pelo bindingcontext, sendo obrigado a definir o ItemsSource da minha listView. Onde está o errro? Segue código abaixo:
<ListView x:Name="lsvVeiculos"
ItemTapped="selecionaItem"
ItemsSource="{Binding Veiculos}"
Margin="25">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Nome}" VerticalTextAlignment="Center"></Label>
<Label Text=" - " VerticalTextAlignment="Center"></Label>
<Label Text="{Binding PrecoFormatado}" VerticalTextAlignment="Center"></Label>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
class Veiculo
{
public string Nome { get; set; }
public Decimal Preco { get; set; }
public String PrecoFormatado {
get { return string.Format("R$ {0}", Preco); }
set { }
}
}
public partial class MainPage : ContentPage
{
private 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;
// Tenho que descomentar a linha abaixo para funcionar.
// lsvVeiculos.ItemsSource = this.Veiculos;
}
private void selecionaItem(object sender, ItemTappedEventArgs e)
{
Veiculo veiculo = (Veiculo)e.Item;
DisplayAlert(veiculo.Nome, veiculo.PrecoFormatado, "Cancelar");
}
}