Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema com o buttonProximo

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;
        }
    }
}
2 respostas

É, talvez seja um bug do Xamarin...

solução!

Encontrei o erro. Eu não tinha colocado o StackLayout.