我设置了一个WPF ProgressBar
是不确定的真实和隐藏的可见性。在事件处理程序中,我正在尝试在更新ObservableCollection
时使ProgressBar可见(以及其ItemsSource为ObservableCollection
的ListView)。我希望来自DoEvents(
的{{1}}}可以让它可见,但事实并非如此。
我注意到System.Windows.Forms.Application
通常比ListView显示视觉变化更早完成。
如何制作SetPBarHelper(() => { ..} )
可见内部事件处理程序代码?
即使ProgressBar
已完成添加项目,如何判断我的ListView
是否仍在更新?
ObserableCollection
答案 0 :(得分:2)
您的问题仅仅是因为您阻止了UI线程。你不能这样做。
当UI线程再次运行消息循环时,您已设置ProgressBar.Visible = false
。 <{1}}永远不会被绘制。
假设您使用的是.net 4.5您需要按如下方式重写代码。
ProgressBar
但总体而言,您需要尽快将UI线程的控制权返回给应用程序循环,以允许它重绘窗口,并在WorkerThread上运行更新。