C# 检查gridView是否为空

C# 检查gridView是否为空,c#,gridview,windows-10-universal,C#,Gridview,Windows 10 Universal,我想知道我的gridView是否为空,其中是否没有任何项。 我已尝试做以下工作: public sealed partial class Profile : Page { Boolean isGridViewEmpty = true; } 这是显示网格视图的函数,我已经尝试让它也确定网格视图是否为空 //gets the animals of the specific chosen user's data tabe public async void getAni

我想知道我的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;
        }

    }
//获取所选特定用户数据选项卡的动物
公共异步void getAnimalsData(int ownerId)
{
整数计数=0;
Registration.GetAnimalsOfUsetableResponseGetAnimalsOfUsetableResult r=Wait cal.GetAnimalsOfUsetableAsync(ownerId);
List theAnimalList=新列表();
动物a=空;
XmlReader xr=r.Any1.CreateReader();
XmlDocument document=新的XmlDocument();
文件加载(xr);
XmlNodeList theXmlList=document.GetElementsByTagName(“表”);
foreach(XmlList中的XmlElement项)
{
a=新动物();
foreach(item.ChildNodes中的XmlNode节点)
{
开关(node.Name)
{
大小写为“animalId”:a.animalId=int.Parse(node.InnerText);count++;break;
大小写“ownerId”:a.ownerId=int.Parse(node.InnerText);count++;break;
案例“animalName”:a.animalName=node.InnerText;count++;break;
大小写“毛发”:a.fur=node.InnerText;计数++;中断;
大小写“level”:a.level=int.Parse(node.InnerText);count++;break;
案例“money”:a.money=int.Parse(node.InnerText);count++;break;
}
}
动物学家。添加(a);
}
grid2.ItemsSource=动物列表;
如果(计数=0)
{
isGridViewEmpty=true;
}
其他的
{
isGridViewEmpty=false;
}
}
调试后,我可以看到它并没有真正退出函数,尽管它也没有显示错误消息。它只是在最后一个花括号后出现卡住。
我不知道我做错了什么,计数似乎工作正常,调试后它还显示
isGridViewEmpty
确实设置为true,但每当我来实现该函数并检查
isGridViewEmpty
是否为true时,它就不起作用。另外,正如我前面提到的,调试器被困在函数
getanimaldata

中,函数
getanimaldata
async
。所以它实际上是有效的,只是因为它发生在后台,而不是我按下它的顺序,所以每当我有条件相关的功能时,它看起来是无用的。因此,我将它改为一个而不是
void
,并将
wait
放在函数前面


有关详细信息,请参阅。

是否有例外情况?僵局?您如何调用此方法?没有任何异常,我甚至尝试了if(grid2.Items.Count==0){noAnimalsProtocol();}但是,就好像程序最后执行getAnimalsData(),无论我将它放在代码中的什么位置供您描述,您需要检查if
GetAnimalsOfUsetableAsync
方法是否正确调用。谢谢,我解决了这个问题,函数getAnimalsData是异步的,所以它确实可以工作。只是它发生在后台,而不是按照我的顺序,因此,每当我有与该函数相关的条件时,它就会看起来好像不起作用,所以我把它作为一个任务而不是void,并将wait放在函数之前。Create,我可以将此注释转换为该案例的答案吗?