【发布时间】:2014-07-30 12:03:02
【问题描述】:
我将 xamdatagrid 绑定到一个列表。但是由于列表上有太多更新,GUI 卡住了。我怎样才能停止这些更新并在间隔(比如 500 毫秒)后刷新网格。将响应式扩展的节流方法有用吗?
【问题讨论】:
标签: wpf data-binding .net-4.0 system.reactive xamdatagrid
我将 xamdatagrid 绑定到一个列表。但是由于列表上有太多更新,GUI 卡住了。我怎样才能停止这些更新并在间隔(比如 500 毫秒)后刷新网格。将响应式扩展的节流方法有用吗?
【问题讨论】:
标签: wpf data-binding .net-4.0 system.reactive xamdatagrid
您可以使用DeferRefresh 来推迟绑定更新,直到您完成对集合的修改:
using (collection.DeferRefresh())
{
// Make changes to the collection
...
}
如果集合是实时更新的,您可以使用计时器来定期更新绑定:
private IDisposable _deferral;
private void refreshTimer_Tick(object sender, EventArgs e)
{
if (_deferral != null)
_deferral.Dispose();
_deferral = collection.DeferRefresh();
}
【讨论】: