こんにちは、これは私の最初の質問です。私は Azure でホストされている Web サービスを作成しています...そして、Windows Phone クライアント アプリケーションと Windows 8 Metro クライアント アプリケーションがあり、wp7 アプリケーションに接続すると、これらのメソッドを使用して取得しましたWindows phone のサービスからの何か:
TimeTierBusiness.BusinessesClient client = new TimeTierBusiness.BusinessesClient();
client.GetAllCompleted += new EventHandler<TimeTierBusiness.GetAllCompletedEventArgs>(client_GetAllCompleted);
client.GetAllAsync();
結果を取得するには、以下に示すように client_GetAllCompleted に移動します。
void client_GetAllCompleted(object sender, TimeTierBusiness.GetAllCompletedEventArgs e)
{
listNearbyBusinesses.ItemsSource = e.Result;
myPopup.IsOpen = false;
}
Windows 8 Metro では、結果を取得するために追加できる GetAllCompleted イベントはありません。Windows 8 でクライアントを呼び出すと、待機可能な GetAllAsync() メソッドだけが取得されます...
現在、地下鉄アプリでこのサービスを使用できないため、何か助けていただければ幸いです
ありがとう :)
解決策は、非同期メソッドを作成することでした。以下のコードを参照してください。
//My WCF Service Client
TimeTierBusiness.BusinessesClient bClient = new TimeTierBusiness.BusinessesClient();
//The list I am going to get from the service
public List<TimeTierBusiness.BusinessRatingViewModel> listBusinessViewModel;
サービスから非同期的にリストを埋めるこのメソッド
private async void GetAllAsyc()
{
System.Collections.ObjectModel.ObservableCollection<TimeTierBusiness.BusinessRatingViewModel> x = await bClient.GetAllAsync();
listBusinessViewModel = x.ToList();
ItemListView.ItemsSource = listBusinessViewModel;
}