我有一个绑定到数据表的wingrid。我创建了一个新的异步线程,并从该线程进行远程服务器调用,传递数据表。服务器调用完成后,wingrid会自动刷新以显示任何更改。然而,由于这不是在程序的主UI线程上完成的,我们经常会在控件运行时出现错误,并在其中出现一个大的红色X。
是否有一个标志可以设置wingrid,使其在数据源更改时不自动更新?我想在远程服务器调用之前将其关闭,并在返回主线程后再次打开。
解决方案是使用
Grid1.BeginUpdate()
在异步方法之前。此方法可防止栅格绘制。然后使用
Grid1.EndUpdate()
异步方法完成后在UI线程上执行。
我想你想要的是:
Grid1.SuspendRowSynchronization()
然后,当完成时:
Grid1.ResumeRowSynchronization()