我有一个大的可观察集合,让我们说一个具有属性IsManager的对象。这个绑定在数据网格上。现在在某些事件上我需要更新此属性。由于事件处理程序在后台线程上处理事件,我需要在Dispatcher上更新它。我正在使用后台优先级调用Dispatcher.BeginInvoke。由于此集合很大(超过50000条记录),因此网格搜索等其他操作的UI变得迟钝。
我们有一些可以解决这个问题的方法吗?
此致
答案 0 :(得分:0)
绑定到具有50000行的网格的ObservableCollection<T>
将始终导致更新的许多问题。
更好的解决方案是不要使用ObservableCollection<T>
使用List<T>
,然后当您需要应用更新时,请使用全新的更改网格的ItemsSource
属性List<T>
(通过绑定表达式)。
如果替换ItemsSource
,则网格将仅为网格视口创建行容器,这将大大减少UI线程(假设已将虚拟化应用于网格)