Проверьте, является ли gridView пустым - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу знать, пустой ли мой gridView, нет ли в нем элементов.Я попытался сделать следующее:

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

Это функция, которая показывает представление сетки, и я попытался сделать так, чтобы он также определял, пусто ли представление сетки

//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;
        }

    }

После отладки я мог видеть, что он на самом деле не выходит из функции, хотя он также не отображает сообщение об ошибке.Он просто застрял после последней фигурной скобки.Я понятия не имею, что я делаю неправильно, кажется, что счетчик работает нормально, после отладки он также показывает мне, что isGridViewEmpty действительно установлено в значение true, но всякий раз, когда я прихожу для реализации функции, я проверяю, является ли isGridViewEmptyправда, это не работает.Также, как я упоминал ранее, отладчик застревает в функции getAnimalsData

1 Ответ

0 голосов
/ 11 декабря 2018

Функция getAnimalsData была async.Так что на самом деле это работает, просто потому, что это происходит в фоновом режиме, а не в порядке, в котором я его нажал, поэтому, когда у меня есть условно-связанные функции, это выглядит бесполезным.Поэтому я сделал Task вместо void и поставил await перед функцией.

Для более подробной информации вы можете сослаться на Асинхронное программирование с асинхронностью и ожиданием (C #) .

...