2 votes

Vérifier si un gridView est vide

Je veux savoir si mon gridView est vide, c'est-à-dire s'il ne contient pas d'éléments. J'ai essayé de faire ce qui suit :

public sealed partial class Profile : Page
{
    Boolean isGridViewEmpty = true;       
}

Voici la fonction qui affiche la vue de la grille, et j'ai essayé de faire en sorte qu'elle détermine également si la vue de la grille est vide ou non.

//gets the animals of the specific chosen user's data tabe
    public async void getAnimalsData(int ownerId)
    {
        int count = 0;
        regitration.getAnimalsOfUserTableResponseGetAnimalsOfUserTableResult r = await cal.getAnimalsOfUserTableAsync(ownerId);
        List<Animal> theAnimalList = new List<Animal>();
        Animal a = null;
        XmlReader xr = r.Any1.CreateReader();
        XmlDocument document = new XmlDocument();
        document.Load(xr);
        XmlNodeList theXmlList = document.GetElementsByTagName("Table");
        foreach (XmlElement item in theXmlList)
        {
            a = new Animal();
            foreach (XmlNode node in item.ChildNodes)
            {
                switch (node.Name)
                {
                    case "animalId": a.AnimalId = int.Parse(node.InnerText); count++; break;
                    case "ownerId": a.OwnerId = int.Parse(node.InnerText); count++; break;
                    case "animalName": a.Animalname = node.InnerText; count++; break;
                    case "fur": a.Fur = node.InnerText; count++; break;
                    case "level": a.Level = int.Parse(node.InnerText); count++; break;
                    case "money": a.Money = int.Parse(node.InnerText); count++; break;
                }
            }
            theAnimalList.Add(a);
        }
        grid2.ItemsSource = theAnimalList;
        if (count == 0)
        {
            isGridViewEmpty = true;
        }
        else
        {
            isGridViewEmpty = false;
        }

    }

En déboguant, j'ai pu constater que la fonction ne se termine pas vraiment, mais qu'elle n'affiche pas non plus de message d'erreur. Elle semble simplement bloquée après la dernière accolade. Je n'ai aucune idée de ce que je fais de mal, le comptage semble fonctionner correctement, mais en déboguant, je vois aussi que isGridViewEmpty est réellement défini comme vrai, mais lorsque je viens à implémenter la fonction et que je vérifie si isGridViewEmpty est vrai, ça ne marche pas. De plus, comme je l'ai déjà mentionné, le débogueur reste bloqué dans la fonction getAnimalsData

1voto

Nico Zhu - MSFT Points 10243

La fonction getAnimalsData était async . En fait, cela fonctionne, simplement parce que cela se passe en arrière-plan au lieu de l'ordre dans lequel j'ai appuyé dessus, ce qui fait que chaque fois que j'ai une fonctionnalité conditionnelle, elle semble inutile. Donc j'en ai fait un Task au lieu de void et mettre await avant la fonction.

Pour plus de détails, vous pouvez vous référer à Programmation asynchrone avec async et await (C#) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X