【发布时间】:2010-09-16 14:54:57
【问题描述】:
很难用一行来描述问题,所以这里是细节。
我之前问过一个问题,即在执行一些长时间运行的操作时在 WPF 窗口中显示繁忙指示器。原问题是here。
我遵循了一条评论中的一些建议,该评论提出了一种“DoEvents”风格的解决方法。我知道这并不理想,但我只有几个小时可以将繁忙指示器添加到大约 50 个窗口,而且它们在 UI 线程上都有很多代码,我没有时间修改以使用后台线程(我希望整晚都在整理它,而不会带来额外的头痛)。
因此,在我的视图模型中设置“忙碌”属性后,我运行以下 DoEvents 样式代码:
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { }));
现在,当我单击启动长时间运行进程的按钮时,等待指示符会根据我的需要出现,一切正常。但是,有问题的按钮是窗口中的默认按钮。如果我按 Enter 键,将使用相同的命令绑定,并且我可以在调试模式下看到以完全相同的方式访问代码。但是,忙碌指示符不显示。
谁能提出一个解决方法,让我今晚可以睡一觉?
【问题讨论】:
标签: wpf