gpt4 book ai didi

c# - 缓慢的 WPF 4 数据网格刷新

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:07 26 4
gpt4 key购买 nike

我正在使用 .NET 4 框架中的 WPF DataGrid 组件,它绑定(bind)到我在此处找到的线程安全可观察集合:http://www.deanchalk.me.uk/post/Thread-Safe-Dispatcher-Safe-Observable-Collection-for-WPF.aspx

该程序是一个系统管理工具,它会 ping 一个范围内的每个 IP 地址,如果有响应,它会在集合中创建一个对象,其中包含来自计算机的一些详细信息。

我遇到的问题是性能不佳。最初,我只是更新集合并让数据网格获取更改。这导致了 DataGrid 控件不刷新并显示数据的问题,除非我滚动。

所以我添加了一个计时器来调用网格刷新方法,计时器每 750 毫秒计时一次。这非常有效,直到我意识到程序 UI 在启用计时器并且正在扫描时完全没有响应。

没有计时器,性能还可以,没有它,就很糟糕了。我已经尝试了几个超时时间值(最多 2000 毫秒)但没有任何运气,并且还确保我的列宽度固定(我读到自动生成的列和宽度会导致性能问题)。

网格中的行数约为 300 - 400,有 5 列,因此它并不是一个巨大的网格。

有没有人对我如何在添加后面的集合时及时更新网格而不牺牲性能有任何建议?

最佳答案

如果您的绑定(bind)正确,则无需手动刷新 DataGrid。在后台更新可观察集合应该会自动触发(假设您已经实现了 NotifyPropertyChanged)DataGrid 的更新。 300 - 400 不是会减慢 DataGrid 速度的数字。您的 DataGrid 是否在 ScrollViewer 中?有时这也会降低性能。确保您的绑定(bind)工作正常,然后您将不需要手动刷新。

关于c# - 缓慢的 WPF 4 数据网格刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5964205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com