我正在使用Store App
- > Grid App
模板,用于创建从网络读取数据并在网页中显示数据的应用。
我使用的数据模型类似于(修改)模板提供的默认SampleData.json
和SampleDataSource.cs
,除了我从两个来源读取数据 - 来自在线xml文件的一个组和来自时间密集型功能的第二个组。
我希望用户能够打开第一个组(因为它快速加载),同时应用程序加载第二个组(正如我所提到的,需要时间)并且我使用以下代码来实现此目的
private async Task GetGroups()
{
SampleDataGroup group1 = new SampleDataGroup(/*initialization parameters*/);
// add items to group1
this.Groups.Add(group1);
LoadGroup2(); // this async function is not awaited
}
private async Task LoadGroup2()
{
SampleDataGroup group2 = new SampleDataGroup(/*initialization parameters */);
// spend lots of time adding adding items to group2
this.Groups.Add(group2);
}
此代码按预期工作(显示组1,用户可以浏览组1项,2分钟通过,然后加载组2)。我的问题是,有时候(可能是1次,每次5次,并且我无法看到),第2组(即GridView
)内的所有图像都没有被加载,即它们显示为黑色。但是,点击任何第2组项目确实会将用户带到相应的ItemDetailPage.xaml
。
为什么Group2中的所有图像(GridView
内)显然随机缺少显示?是否与我使用过的async-await方法有关?