1

私はアプリに取り組んでおり、コードを再構築しています。

私の 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」イベントはありません。

4

1 に答える 1