我的应用程序简单调用Azure Webservice数据库,我想将返回的行复制到新列表中。
private IMobileServiceTable<dbEntry> entryTable = App.MobileService.GetTable<dbEntry>();
private MobileServiceCollectionView<dbEntry> currentEntries;
currentEntries = (entryTable.Where(ev => ev.event_date.Month == dateToShow.Month)
.ToCollectionView());
foreach (dbEntry ev in currentEntries)
{
//insert ev into another List
}
问题是对DB的“where”调用是异步的,所以到达循环时,currentEntries
中还没有元素。
如何在执行循环之前检测到调用已完成?是否有一个事件处理程序?
谢谢。
答案 0 :(得分:1)
听起来你已经找到了这个解决方案,但是我会把它发布给遇到这个问题的其他人。
除非您直接想要将UI元素绑定到操作结果,否则我建议您不要使用ToCollectionView方法。相反,请执行以下操作:
private IMobileServiceTable<dbEntry> entryTable = App.MobileService.GetTable<dbEntry>();
private List<dbEntry> currentEntries;
currentEntries = await entryTable.Where(ev => ev.event_date.Month == dateToShow.Month)
.ToListAsync();
foreach (dbEntry ev in currentEntries)
{
//insert ev into another List
}