Eu estava tentando "reproduzir" o aplicativo aluracar, mais com um contexto diferente pra exercitar um pouco. Eu reproduzi a primeira parte do aplicativo "Listagem" , e aparentemente deu tudo certo, só que quando eu seleciono uma opção pra avançar para a próxima página , ele não avança, só fica com a opção selecionada
<?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:AppGourmet"
xmlns:vm="clr-namespace:AppGourmet.ViewModels"
Title="Lanches"
x:Class="AppGourmet.Views.ListagemView">
<ContentPage.BindingContext>
<vm:ListagemViewModel></vm:ListagemViewModel>
</ContentPage.BindingContext>
<ListView x:Name="ListViewPratos"
Margin="25"
ItemsSource="{Binding Pratos}"
SelectedItem="{Binding PratoSelecionado}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Nome}"></Label>
<Label Text="{Binding Preco}"></Label>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
namespace AppGourmet.Views
{
public partial class ListagemView : ContentPage
{
public ListagemView()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Subscribe<Pratos>(this, "PratoSelecionado",
(msg) =>
{
Navigation.PushAsync(new AdicionaisView(msg));
});
}
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<Pratos>(this, "PratoSelecionado");
}
}
}
namespace AppGourmet.ViewModels
{
public class ListagemViewModel
{
public List<Pratos> Pratos { get; set; }
Pratos pratosSelecionado;
public Pratos PratosSelecionado
{
get
{
return pratosSelecionado;
}
set
{
pratosSelecionado = value;
if (value != null)
MessagingCenter.Send(pratosSelecionado, "PratoSelecionado");
}
}
public ListagemViewModel()
{
this.Pratos = new ListagemPratos().Pratos;
}
}
}
A Segunda Página
namespace AppGourmet.Models
{
public class ListagemPratos
{
public List<Pratos> Pratos { get; private set; }
public List<Ingredientes> Ingredientes { get; private set; }
public List<Ingredientes> Adicionais { get; private set; }
public ListagemPratos()
{
this.Pratos = new List<Pratos>()
{
new Pratos { Nome = "X-Burger", Preco = 10},
new Pratos { Nome = "X-Bacon", Preco = 13 },
new Pratos { Nome = "X-EggBacon", Preco = 14 },
new Pratos { Nome = "X-Tudo", Preco = 16 },
new Pratos { Nome = "X-Cheddar", Preco = 19 },
};
}
}
}
namespace AppGourmet.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class AdicionaisView : ContentPage
{
public Pratos Pratos { get; set; }
public AdicionaisView(Pratos pratos)
{
InitializeComponent();
this.Pratos = pratos;
this.BindingContext = new AdicionaisView(pratos);
}
}
}
<?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="AppGourmet.Views.AdicionaisView">
<ContentPage.Content>
<StackLayout>
<Label Text="Welcome to Xamarin Forms!" />
</StackLayout>
</ContentPage.Content>
</ContentPage>