我的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的類來解決此問題。它只在所有條目添加完畢後才引發單個事件。性能大大提高。 –