在 WPF 中更改选项卡和使用 Telerik 控件时出现性能问题
我们有一个带有选项卡的 WPF 应用程序。每个选项卡都绑定到一个视图模型。
当我们使用 WPF 文本框并选择一个选项卡时,我们的 CPU 峰值为 7%,并且响应接近瞬时。
当我们使用 Telerik WPF 控件并选择一个选项卡时,CPU 峰值为 30%,响应时间为 2 秒。
其他信息:
- 选项卡上大约有 30 个文本框
- 我们将 Telerik 控件包装为一个控件
- 我们在更改选项卡时重新绑定 我们
- 在调试模式下从 Visual Studio 运行
任何人都知道为什么我们会看到如此糟糕的性能以及如何解决修复它吗?
We have a WPF application with tabs. Each tab is bound to a View model.
When we use WPF text boxes and select a tab we get a CPU spike of 7%, and the response is close to instantaneous.
When we use Telerik WPF controls and select a tab we get a CPU spike of 30% and the response time is 2 seconds.
Other info:
- There are about 30 text boxes on a tab
- We wrap the Telerik controls is a control
- We Rebind when we change tab
- We are running from Visual Studio in debug mode
Anyone have an idea of why we are seeing this poor performance and how to fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
WPF 卸载不可见的项目,其中包括当前未选择的 TabItem,因此我怀疑切换选项卡时性能受到影响是由于新选项卡上的所有项目都被重新加载。
我通常使用 TabControl 的扩展版本,当您切换选项卡时,它会阻止它卸载/重新加载其内容。找到代码 此处
WPF unload items that are not visible, which includes TabItems that are not currently selected, so I suspect the performance hit when switching tabs is due to all the items on the new tab being re-loaded.
I usually use an extended version of the TabControl which stops it from unloading/reloading it's content when you switch tabs. The code is found here