Xamarin Forms “...DisplayAlert n'existe pas dans le contexte actuel.”

Je travaille avec Xamarin, encore nouveau pour elle, mais je vais avoir un problème que j'ai le sentiment que je ne devrais pas l'être. Voici mon problème:

using System;
using Xamarin.Forms;

namespace DataBinding_Lists
{
public class App
{
    public static Page GetMainPage ()
    {   
        var listView = new ListView { RowHeight = 40 };
        listView.ItemsSource = new Person []
        {
            new Person { FirstName = "Abe", LastName = "Lincoln" },
            new Person { FirstName = "Groucho", LastName = "Marks" },
            new Person { FirstName = "Carl", LastName = "Marks" },
        };

        listView.ItemTemplate = new DataTemplate(typeof(TextCell));
        listView.ItemTemplate.SetBinding(TextCell.TextProperty, "FirstName");
        listView.ItemSelected += async (sender, e) => {
            await DisplayAlert ("Tapped!", e.SelectedItem + " was tapped.", "OK", "");
        };

        return new ContentPage { 
            Content = new StackLayout
            {
                Padding = new Thickness (5,20,5,5),
                Spacing = 10,
                Children = { listView }
            }
        };
    }

}

}

Évidemment, j'ai une classe sur une autre page appelée "Personne". Cette classe possède deux propriétés: "Prénom" et "Nom". Quand j'ai essayer de mettre tout cela ensemble comme dans Xamarin, je reçois le message d'erreur disant: "Le nom de "DisplayAlert" n'existe pas dans le contexte actuel."

Cette erreur est vous dire que Xamarin ne sais pas ce que DisplayAlert est. Vous êtes sans doute au manque une référence à un assembly, manque un using déclaration ou les deux.
Le DisplayAlert méthode est utilisée par "Xamarin.Les formes", qui, comme indiqué ci-dessus, je suis à l'aide. DisplayAlert est une méthode créée par et pour Xamarin, donc, si je suis en utilisant ce qu'il me dit, alors je ne sais pas pourquoi c'est encore de me donner cette erreur. (developer.xamarin.com/guides/cross-platform/xamarin-forms/...)
Oui, mais c'est une méthode de la Page classe (pas sûr si c'est statique ou un membre de méthode), mais vous n'êtes ni appeler à l'aide Page préfixe ni votre App classe hérite de la Page classe, de sorte qu'il n'a aucun moyen de savoir comment l'appeler. Soit vous avez à faire Page.DisplayAlert() (si c'est une méthode statique) ou de faire votre App classe hérite de Page et de garder le courant de l'appel.
J'ai juste essayé ces deux idées. Ils son légitime, comme s'ils doit, mais avec les deux que j'ai essayé, il a dit la même chose: "Une référence d'objet est requise pour accéder à la non-membre statique 'Xamarin.Les formulaires.Page.DisplayAlert(string,string,string,string)' est-ce à dire qu'au lieu d'utiliser une méthode statique je doit créer un objet de l'appel à la méthode?
Ouais, il semble donc que DisplayAlert() est un membre de la méthode. En tant que tel, vous ne pouvez pas appeler à partir d'un contexte statique. Alors oui, vous n'avez qu'à l'appeler à l'aide de l'un de vos objets, voir la réponse.

OriginalL'auteur prinsJoe | 2014-12-16