我的ListView
与GridView
,因为它的View
。 ListView
的ItemsSource
绑定到ViewModel中的ItemsCollection。WPF:如何在不阻止动画的情况下更新UI
这GridView
有很多列和ListView
可以有很多项目。
当窗口正在加载或用户更新此ListView
我显示加载动画,同时从服务器检索新数据和更新ViewModel中的ItemsCollection与新数据。
这种数据检索已经异步完成,所以加载动画不断旋转。但只要检索到数据并且绑定要更新ListView
,加载动画就会冻结,直到完成UI的更新。
即使绑定更新UI,我如何才能让我的加载动画继续旋转?
谢谢你的帮助。
您是否正在使用大量记录更新ObservableCollection?如果是这样,每个单独的记录添加都会触发一个CollectionChanged事件。每个事件都会触发UI更新。 –
是的,我更新了ViewModel中的ObservableCollection,并且此UI更新冻结了UI线程上发生的动画。 – Nostromo
我遇到了一个问题,我需要将约1k条目添加到ObservableCollection中,并且UI在数秒内变得无响应。我通过创建一个派生自具有BulkAdd()方法的ObservableCollection的类来解决此问题。它只在所有条目添加完毕后才引发单个事件。性能大大提高。 –