Segui os passos da aula, porém na hora de testar a aplicação, quando passo da ListagemView pro DetalhesView, o Xamarin cai no seguinte erro:
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
private void InitializeComponent() {
global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(DetalheView));
buttonProximo = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Xamarin.Forms.Button>(this, "buttonProximo");
}
Seguem os códigos:
ListagemView Code Behind
namespace TestDrive.Views
{
public partial class ListagemView : ContentPage
{
public List<Veiculo> Veiculos { get; set; }
public ListagemView()
{
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 = 45000
}
};
this.BindingContext = this;
}
private void listViewVeiculos_ItemTapped(object sender, ItemTappedEventArgs e)
{
var veiculo = (Veiculo)e.Item;
//DisplayAlert("Test Drive", string.Format("Você selecionou o modelo '{0}', que custa {1}", veiculo.Nome, veiculo.PrecoFormatado),"OK");
Navigation.PushAsync(new DetalheView(veiculo));
}
}
ListagemView XAML
<ContentPage.Content>
<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.Content>
</ContentPage>
DetalheView Code Behind
namespace TestDrive.Views
{
public partial class DetalheView : ContentPage
{
public Veiculo Veiculo { get; set; }
public DetalheView (Veiculo veiculo)
{
InitializeComponent ();
this.Title = veiculo.Nome;
this.Veiculo = veiculo;
}
private void buttonProximo_Clicked(object sender, EventArgs e)
{
Navigation.PushAsync(new AgendamentoView(this.Veiculo));
}
}
}
DetalheView XAML
<ContentPage.Content>
<Label Text="Esta é a página de detalhe"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Button x:Name="buttonProximo" Text="Proximo"
Clicked="buttonProximo_Clicked"
VerticalOptions="End"></Button>
</ContentPage.Content>
Agendamento Code Behind
namespace TestDrive.Views
{
public partial class AgendamentoView : ContentPage
{
public AgendamentoView (Veiculo veiculo)
{
InitializeComponent ();
this.Title = veiculo.Nome;
}
}
}