Wpf 在后台线程上有一组UI任务时,如何显示IsBusy标志?

Wpf 在后台线程上有一组UI任务时,如何显示IsBusy标志?,wpf,multithreading,user-interface,loading,adorner,Wpf,Multithreading,User Interface,Loading,Adorner,我有一个DataGrid,其列datatemplated带有RichTExtBox。 如果我用RTF数据绑定10个对象,结果是10个RichTextBox 对于1 DINA4页的RTF,一个RTBox需要200毫秒才能完成textrange.Load(数据) 现在,当我切换日历视图时,UI冻结了2000毫秒。如果我能展示一个 我忙着装饰,但我有一个RTbox的集合我怎么能做到这一点 我可以在后台线程上运行每个UI任务,并使用Dispatcher更新UI。但是 但我仍然需要一个加载装饰器/进度条。

我有一个DataGrid,其列datatemplated带有RichTExtBox。 如果我用RTF数据绑定10个对象,结果是10个RichTextBox

对于1 DINA4页的RTF,一个RTBox需要200毫秒才能完成textrange.Load(数据)

现在,当我切换日历视图时,UI冻结了2000毫秒。如果我能展示一个

我忙着装饰,但我有一个RTbox的集合我怎么能做到这一点

我可以在后台线程上运行每个UI任务,并使用Dispatcher更新UI。但是

但我仍然需要一个加载装饰器/进度条。所有数据在100-200毫秒内都非常快


以异步方式从我的数据库中删除。但是如何解决加载装饰器的特殊问题呢?

为什么不能在一个BackgroundWorker中运行所有后台工作?您可以在启动BackgroundWorker后立即设置加载装饰器/进度条,并且可以在RunWorkerCompleted方法中删除加载装饰器/进度条。ProgressChanged方法可用于保持加载装饰器/进度条的更新。

因为textrange.Load(data)所在的方法是在ExtendedRichTextBox类中调用的。这个类是通过RichTextBox从XAML实例化的,它是为DataGrid中的每一行实例化的。可能存在DataGrid的DataLoadingFinishing事件。我必须搜索,否则你有更好的建议吗?