我认为这是微不足道的,但我找不到答案:( 我有一个WP7页面,它托管了一些控件,我希望用Web请求读取日期。 Web请求完成:
WebClient wr = new WebClient();
wr.DownloadStringCompleted += new DownloadStringCompletedEventHandler(Event_DownloadStringCompleted);
wr.DownloadStringAsync(new Uri(theURL));
,这是在Page_Loaded事件中调用的。 在Event_DownloadStringCompleted中,我尝试将新值分配给TextBlocks,完全忽略此命令。
我做错了什么?我是否需要找到其他事件来启动Web请求?或者是否可以在完成Web请求后“刷新”页面?
由于
答案 0 :(得分:1)
您的Event_DownloadStringCompleted未在UI线程上调用,因此无法更新UI。使用Dispatcher在右侧线程上回调。 e.g。
page.Dispatcher.BeginInvoke(delegate(){textBlock.Text =“done!”;});
答案 1 :(得分:0)
您可能希望在调用页面的OnNavigatedTo()方法时启动Web请求,而不是在页面的Loaded事件被触发时,但我认为这不会解决您的问题。
您确定调用了DownloadStringCompleted事件的处理程序吗?如果是这样,DownloadStringCompletedEventArgs的Error属性是否设置为非空值?
答案 2 :(得分:0)
与公共测试版中引入的某些显示驱动程序相关的已知显示/刷新问题。在某些情况下,这已知与ATI适配器相关联。有些人在驱动程序更新后报告成功。
这可能会影响您的刷新结果。
根据WPDT系统要求,您还可以检查驱动程序是否符合directx10和WDDM1.1标准。如果没有,驱动程序升级(再次),适配器更改或升级到Win7,如果运行Vista已解决了几个模糊的问题。
此外,如果您有此选项,请尝试使用其他配置在另一台PC上运行。