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

Silverlight 如何在WP7中创建伪同步下载,silverlight,windows-phone-7,asynchronous,Silverlight,Windows Phone 7,Asynchronous,我有一个类,里面有public DownloadAsync方法,可以通过Webclient下载内容。我创建该类的一个对象并调用download方法 我的问题是:我想阻止UI上的元素(例如按钮),直到下载完成。到目前为止,我还没有找到任何解决办法 一个想法是:我可以在Downloadcomplete方法中调用带有“DownloadIsDone”这样消息的MessageBox,并以某种方式调用MessageBox的Eventhandler。但是怎么做呢 你知道怎么解决我的问题吗 编辑:我知道hot可

我有一个类,里面有public DownloadAsync方法,可以通过Webclient下载内容。我创建该类的一个对象并调用download方法

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

一个想法是:我可以在Downloadcomplete方法中调用带有“DownloadIsDone”这样消息的MessageBox,并以某种方式调用MessageBox的Eventhandler。但是怎么做呢

你知道怎么解决我的问题吗


编辑:我知道hot可以禁用元素,但由于下载方法中的异步下载,我不知道下载什么时候结束,为了恢复元素,你应该禁用所有元素-将IsEnabled设置为false on buttons等。如果你想要一个快速而肮脏的解决方案,你可以用矩形、边框、网格或弹出框覆盖屏幕。

尝试一个有覆盖的繁忙指示器。

将事件添加到数据类中,下载完成后触发事件处理程序

然后在页面中,在初始化器中执行类似的操作

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

}

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

我现在编辑了我的问题,因为我的问题是:我应该什么时候重新激活控件?WebClient调用DownloadAsyncCompleted方法,但我使用了该类的一个实例,调用公共下载方法,因此没有对UI的回调:\Joseph的解决方案将起作用。如果您使用的是mvvm,这是一种很好的忙碌方式。另外,使用异步ctp,您可以消除一些回调业务。谢谢!对于搜索如何创建活动文件夹的用户:[