2

私のアプリは 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です。

ループを実行する前に呼び出しが完了したことを検出するにはどうすればよいですか? これに対するイベントハンドラはありますか?

ありがとうございました。

4

1 に答える 1

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
}
于 2013-01-24T23:05:53.593 に答える