如何在WP7中创建伪同步下载

时间:2011-12-01 00:47:27

标签: silverlight windows-phone-7 asynchronous

我有一个带有公共DownloadAsync方法的类,它通过Webclient下载内容。我创建该类的Object并调用下载方法。

我的问题是:我想阻止UI上的元素(例如按钮),直到下载完成。到目前为止我找不到任何解决方案。

一个想法是:我可以使用Downloadcomplete方法中的“下载完成”之类的消息调用MessageBox,并以某种方式调用MessageBox的Eventhandler。但是如何?

知道如何解决我的问题吗?

编辑:我知道热门禁用了Elements,但由于下载方法中的异步下载,我不知道下载何时结束才能启用元素

3 个答案:

答案 0 :(得分:1)

向您的数据类添加一个事件,并在下载完成后触发事件处理程序。

然后在你的页面中在你的初始化程序中执行类似的操作

  BusyMessage.Visibility = Visibility.Visible;
  this.DataContext = MYDownloaderClass.downloadedData;
  MyDownloaderClass.hasFinished += new EventHandler(hasFinished);

}

void hasFinished(object sender, EventArgs e){
  BusyMessage.Visibility = Visibility.Collapsed
}

答案 1 :(得分:0)

你应该只是禁用所有元素 - 在按钮等上将IsEnabled设置为false。如果你想要一个快速而肮脏的解决方案 - 你可以用一个矩形,边框,网格或弹出窗口覆盖屏幕。

答案 2 :(得分:0)