我试图找到另一个像这样的问题,因为它确实看起来像是以前可能被问过的问题;但我找不到它。
基本上,我有一个DataGridView
,它绑定到一个BindingList<T>
. 我知道,总的来说,数据绑定非常好,并且可以节省大量(我们的开发人员的)时间。然而,这个网格存在一个非常大的性能问题。
根据以前的经验,我相当有信心通过手动更新计时器中的可见单元格DataGridView
而不是实现来大大提高性能INotifyPropertyChanged
(这不是一个真正可行的选择,因为此网格中的许多值每次更改数十次第二)或打电话Refresh
。但是有一个问题:如果我手动一个一个地更新网格中的单元格,每次更新都会触发set
数据绑定对象的相应属性,加起来会导致性能显着下降。
确实没有必要进行所有这些set
调用,因为我放入网格单元格的值是直接从这些属性中检索的(所以我基本上是在读取一个值,然后将其写回自身)。
如果我可以暂时禁用DataGridView
: 的此功能,暂时关闭负责根据网格更新更新底层数据源的功能,那就太好了。然后,当我手动完成更新后,重新打开该功能,以便用户的更新确实会影响数据源。
我尝试使用 aBindingSource
并将其DataSource
属性设置为BindingList<T>
并调用SuspendBinding
/ ResumeBinding
; 但这似乎不起作用。set
电话还在继续。
有什么方法可以完成我在这里的目标吗?我是否完全走错了路?