WPF 4 数据网格刷新速度较慢
本文关键字:速度 刷新 网格 数据 数据网 WPF | 更新日期: 2023-09-27 17:56:12
我正在使用.NET 4框架中的WPF DataGrid组件,它绑定到我在这里找到的线程安全可观察集合:http://www.deanchalk.me.uk/post/Thread-Safe-Dispatcher-Safe-Observable-Collection-for-WPF.aspx
该程序是一个系统管理工具,它ping范围内的每个IP地址,如果有响应,它会在集合中创建一个对象,其中包含计算机的一些详细信息。
我遇到的问题是性能不佳。最初,我只是更新集合并让数据网格获取更改。这导致了一个问题,即除非我滚动,否则 DataGrid 控件不会刷新并显示数据。
所以我添加了一个计时器来调用网格刷新方法,计时器每 750 毫秒滴答一次。这非常有效,直到我意识到程序 UI 在启用计时器并正在扫描时完全无响应。
没有计时器,性能是可以接受的,没有计时器,它就很糟糕。我已经尝试了超时期限(最多 2000 毫秒)的几个值,但没有任何运气,并且还确保我的列是固定宽度(我读到自动生成的列和宽度可能会导致性能问题)。
网格中的 Row 数量约为 300 - 400,有 5 列,因此它并不完全是一个巨大的网格。
有没有人对如何在添加后面的集合时及时更新网格而不牺牲性能有任何建议?
如果绑定正确,则无需手动刷新 DataGrid。在后台更新可观察集合应自动触发(假设已实现 NotifyPropertyChanged)DataGrid 的更新。300 - 400 不是一个会减慢数据网格速度的数字。您的数据网格是否在 ScrollViewer 中?有时也会降低性能。确保绑定工作正常,然后不需要手动刷新。