我正在开发一个应用程序,并且正在重组我的代码。
在我的 MainPage.xaml.cs 上有一个 TextBlock 和一个 ListBox。我有单独的文件(Info.cs)来处理 HttpRequest 以获取我需要加载的信息。
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 中,我有一个 Dispatcher 来填充 ForecastList:
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
ForecastList.Clear();
ForecastList = outputList;
}
现在发生的事情是 TextBlock 立即更改为“完成!” (doh,它的异步!)但是我该如何改变呢?所以它在 ListBox 上“等待”更新?不幸的是,Windows Phone 中没有“ItemsSourceChanged”事件。