我有一个后台工作者,我用它来填充我的TreeView绑定的集合。当背景工作器正在运行时,我有GUI显示进度对话框。我在BackgroundWorker的RunWorkerCompleted事件中关闭了进度对话框。这一切都很好,如预期的那样。WPF TreeView刷新的性能
问题是在进度对话框关闭后,TreeView经常需要一段时间才能更新。有时很多数据已被添加到TreeView中,因此刷新可能需要10秒左右的时间。这会导致用户感到沮丧和困惑。
- 为什么TreeView刷新需要这么长时间?
- 有没有办法加快速度?
- 要知道何时刷新/重画完成,所以我可以关闭进度对话框,而不是当我的背景工作完成时?
更新:我打开了虚拟化。
是你的树必然要什么类型的集合?你的物品模板有多复杂?你能描述一下你的TreeView和ViewModel是如何实现的。 –