6
respostas

Não está exibindo a listagem

Estava tudo dando certo, até que eu iniciei um novo projeto e copiei os dois arquivos, Listagem e Fotos(referente ao arquivo detalhes) para o novo projeto AppEvento. Segue os codigos

using AppEvento.Views;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Xamarin.Forms;

namespace AppEvento
{
    public partial class App : Application
    {
        public App ()
        {
            InitializeComponent();

            MainPage = new NavigationPage(new ListagemView());
        }

        protected override void OnStart ()
        {
            // Handle when your app starts
        }

        protected override void OnSleep ()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume ()
        {
            // Handle when your app resumes
        }
    }
}

e o Listagem

using AppEvento.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace AppEvento.Views
{
    public class Cliente
    {
        public string Nome { get; set; }
        public string Evento { get; set; }

    }
    public partial class ListagemView : ContentPage
    {
        public List<Cliente> Clientes { get; set; }
        private EventoServices service { get; set; }

        public ListagemView()
        {
            InitializeComponent();

            service = new EventoServices();

            this.Clientes = new List<Cliente>
            {
                new Cliente { Nome = "Clube de Campo", Evento = "A Bela e a Fera"}
            };

            this.BindingContext = this;


        }

        private void ListViewClientes_ItemTapped(object sender, ItemTappedEventArgs e)
        {

            var cliente = (Cliente)e.Item;

            Navigation.PushAsync(new FotosView(cliente));

        }

        private void CallApi(object sender)
        {
            var list = service.LoadEvento();
        }
    }
}

Não sei oque pode estar acontecendo, lembrei de mudar o nome da aplicação em todos os arquivos...

tem ideia do que pode ser esse problema?

Obrigado

6 respostas

Olá Luiz!

Manda o código do arquivo XAML pra gente dar uma olhada!

<?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:AppEvento"
             Title="Evento Ativo"
             x:Class="AppEvento.Views.ListagemView">

    <ListView x:Name="ListViewClientes" ItemsSource="{Binding Clientes}" Margin="25" ItemTapped="ListViewClientes_ItemTapped">
        <button text="Exibir Eventos" Clicked="CallApi" ></button>
        <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 Evento}" FontAttributes="Italic" VerticalTextAlignment="Center"></Label>
                        </StackLayout>
                    </ViewCell.View>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

</ContentPage>

Olá, Luiz!

Existem alguns problemas com o XAML que você nos passou:

  1. Botão dentro da Listview
  2. Button escrito em minúsculo (o Xamarin não reconhece)
  3. Propriedade Text em minúsculo

Fiz algumas alterações no XAML, veja como ficou:

    <StackLayout>
        <Button Text="Exibir Eventos" Clicked="CallApi"></Button>
        <ListView x:Name="ListViewClientes" ItemsSource="{Binding Clientes}" Margin="25" ItemTapped="ListViewClientes_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 Evento}" FontAttributes="Italic" VerticalTextAlignment="Center"></Label>
                            </StackLayout>
                        </ViewCell.View>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
  1. Assinatura do evento Clicked incorreta. Veja como deveria ser, com o parâmetro EventArgs que estava faltando:
        private void CallApi(object sender, EventArgs e)
        {
            var list = service.LoadEvento();
        }

Com essas alterações, funcionou pra mim. Espero que pra você também :-)

Boa sorte e bons estudos!

Infelizmente o meu não deu certo :/ coloquei seu código e na hora de abrir o emulador, abro o app e ele fica com a tela branca e depois da a mensagem "infelizmente o EventoBeta parou"

Eu não faço ideia do que pode ser :|

Agora quando eu rodo, me "leva " para esse arquivo, na linha this.LoadFromXaml(typeof(MainPage));

namespace EventoBeta {
    using System;
    using Xamarin.Forms;
    using Xamarin.Forms.Xaml;


    public partial class MainPage : global::Xamarin.Forms.ContentPage {

        [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
        private global::Xamarin.Forms.ListView ListViewClientes;

        [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
        private void InitializeComponent() {
            this.LoadFromXaml(typeof(MainPage));
            ListViewClientes = this.FindByName<global::Xamarin.Forms.ListView>("ListViewClientes");
        }
    }
}

E da esse erro

Unhandled Exception:

Xamarin.Forms.Xaml.XamlParseException: Position 9:90. No method ListViewClientes_ItemTapped found on type EventoBeta.MainPage ocorreu

Essa mensagem diz que ele não encontrou o método ListViewClientes_ItemTapped (No method ListViewClientes_ItemTapped found on type EventoBeta.MainPage)

Acrescente este código no seu arquivo MainPage.xaml.cs:

        private void ListViewClientes_ItemTapped(object sender, ItemTappedEventArgs e)
        {

            var cliente = (Cliente)e.Item;

            Navigation.PushAsync(new FotosView(cliente));

        }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software