Estou fazendo o curso de Xamarin 2, e quando fiz a implantação do SelectedItem e dos Commands não funcionou, já tentei mudar a versão do Xamarin e testar com versões de Android diferentes, porém sem sucesso!!
Estou usando o Visual Studio 2017, e estou rodando os testes no Live Play do Xamarin.
Abaixo os Meu Código.
VIEW
<?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:Xamarim.Alura"
xmlns:vm="clr-namespace:Xamarim.Alura.ViewModels"
Title="Teste Drive"
x:Class="Xamarim.Alura.View.ListagemView">
<ContentPage.BindingContext>
<vm:ListagemViewModel></vm:ListagemViewModel>
</ContentPage.BindingContext>
<ListView x:Name="listViewVeiculos"
ItemsSource="{Binding Veiculos}"
SelectedItem="{Binding VeiculoSelecionado}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Nome}" FontSize="20" VerticalTextAlignment="Center"></Label>
<Label Text="-" FontSize="20" VerticalTextAlignment="Center"></Label>
<Label Text="{Binding PrecoFormatado}" FontAttributes="Bold" FontSize="20" VerticalTextAlignment="Center"></Label>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
VIEW - CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarim.Alura.View;
using Xamarim.Alura.Models;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace Xamarim.Alura.View
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ListagemView : ContentPage
{
public ListagemView()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Subscribe<Veiculo>(this, "VeiculoSelecionado",
(msg) =>
{
Navigation.PushAsync(new DetalheView(msg));
});
}
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<Veiculo>(this, "VeiculoSelecionado");
}
}
}
ViewModelCS
using System;
using System.Collections.Generic;
using System.Text;
using Xamarim.Alura.Models;
using Xamarin.Forms;
namespace Xamarim.Alura.ViewModels
{
public class ListagemViewModel
{
public List<Veiculo> Veiculos { get; set; }
Veiculo veiculoSelecionado;
public Veiculo VeiculoSelecionado
{
get
{
return veiculoSelecionado;
}
set
{
veiculoSelecionado = value;
if (value != null)
MessagingCenter.Send(veiculoSelecionado, "VeiculoSelecionado");
}
}
public ListagemViewModel()
{
this.Veiculos = new ListagemVeiculos().Veiculos;
}
}
}