をダウンロードしたまで待ちます。Webクライアント - ファイルが、私は、XMLファイルから生成されたコレクションを返す関数を、開発してい
当初、私はテストのためにローカルXMLファイルを使用していたが、今私は、アプリケーションがサーバーから本当のxmlファイルをダウンロード持って準備ができています。私はWebClient
オブジェクトにOpenReadCompleted
イベントハンドラを与える必要があるという事実のために、これをどうすればいいのか分かりません。このハンドラからコレクションデータを返すことはできません。また、このハンドラが実行されるまでに元の関数が終了しました。
次のように私の元のコードは次のとおりです。
public static ObservableCollection<OutletViewModel> GetNear(GeoCoordinate location)
{
ObservableCollection<OutletViewModel> Items = new ObservableCollection<OutletViewModel>();
// Load a local XML doc to simulate server response for location
XDocument xDoc = XDocument.Load("SampleRemoteServer/outlet_list.xml");
foreach (XElement outlet in xDoc.Descendants("outlet"))
{
Items.Add(new OutletViewModel()
{
Name = outlet.Attribute("name").Value,
Cuisine = outlet.Attribute("cuisine").Value
});
}
return Items;
}
どのように私は、この機能では、ファイルをロードし、イベントハンドラの実行を持って、その後、機能を継続することができますか?
私は、イベントハンドラコードによって更新される変数をチェックし続けるためにループを追加することしか考えられませんでしたが、それは良い解決策のようには聞こえません。あなたが完了したイベントにforeach()
ループを移動
おかげで、 ジョシュ
それはそれはあなたがあなたのデザイン –
を微調整する必要があることを意味していても、非同期リクエストの上まで読んで価値があるかもしれないので、あなたは私が非同期で探し始めましたが、UIスレッドをブロックしたくありません/キーワードを待って、ありがとう! – Josh