私はアプリに取り組んでおり、コードを再構築しています。
私の MainPage.xaml.cs には、TextBlock と ListBox があります。読み込む必要がある情報を取得するために HttpRequest を処理する別のファイル (Info.cs) があります。
Info.cs の HttpRequest は、天気 API から情報を取得します。すべての情報を取得すると、その情報が ObservableCollection に格納されます。この ObservableCollection は ListBox にバインドされます。
ここで、HttpRequest が終了したときに TextBlock を更新して、すべての情報が読み込まれたことをユーザーに示したいと思います。
どうすればこれを達成できますか?
MainPage.xaml.cs:
WeatherInfo weatherInfo = new WeatherInfo();
weatherInfo.getTheWeatherData();
DataContext = weatherInfo;
WeatherListBox.ItemsSource = weatherInfo.ForecastList;
StatusTextBlock.Text = "Done.";
Info.cs には、ForecastList を埋める Dispatcher があります。
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
ForecastList.Clear();
ForecastList = outputList;
}
ここで、TextBlock が即座に "Done!" に変わります。(ああ、非同期です!)しかし、どうすればこれを変更できますか?リストボックスが更新されるのを「待つ」のですか?残念ながら、Windows Phone には「ItemsSourceChanged」イベントはありません。