Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Infragistics-在数据源更改时禁用ultrawingrid自动更新_Vb.net_Infragistics - Fatal编程技术网

Vb.net Infragistics-在数据源更改时禁用ultrawingrid自动更新

Vb.net Infragistics-在数据源更改时禁用ultrawingrid自动更新,vb.net,infragistics,Vb.net,Infragistics,我有一个绑定到数据表的wingrid。我创建了一个新的异步线程,并从该线程发出一个传递datatable的远程服务器调用。服务器调用完成后,wingrid会自动刷新以显示任何更改。但是,由于这不是在程序的主UI线程上完成的,因此我们经常会在控件发出嗖嗖声并出现一个大的红色X时出错 是否有标志将wingrid设置为在数据源更改时不自动更新?我想在远程服务器调用之前将其关闭,然后在回到主线程后再次打开它。我想您需要的是: Grid1.SuspendRowSynchronization() 然后,完

我有一个绑定到数据表的wingrid。我创建了一个新的异步线程,并从该线程发出一个传递datatable的远程服务器调用。服务器调用完成后,wingrid会自动刷新以显示任何更改。但是,由于这不是在程序的主UI线程上完成的,因此我们经常会在控件发出嗖嗖声并出现一个大的红色X时出错


是否有标志将wingrid设置为在数据源更改时不自动更新?我想在远程服务器调用之前将其关闭,然后在回到主线程后再次打开它。

我想您需要的是:

Grid1.SuspendRowSynchronization()
然后,完成后:

Grid1.ResumeRowSynchronization()

解决办法是使用

Grid1.BeginUpdate()
在异步方法之前。此方法可防止栅格绘制。然后使用

Grid1.EndUpdate()

异步方法完成后在UI线程上执行。

这不起作用。我在datatable中添加并更新了行,网格仍然显示了非常奇怪的更改。根据Infragistics文档(),这不应该发生。这听起来像是控件中可能存在的错误。这只会阻止绘制。最好的方法是始终在UI线程上更新DataTable,因为没有任何方法阻止网格或任何绑定控件接收通知,这仍然是从后台线程更新控件,这可能会导致问题,因为只有少数控件成员是线程安全的。有关线程安全的更多详细信息,请参阅MSDN上控件的线程安全部分:另外,像
PostSharp
这样的免费库可能有助于其
[ThreadSafeMethod]