當更新我的ObservableCollection
,我得到這個錯誤:更新的ObservableCollection導致UI凍結
This type of CollectionView does not support changes to its SourceCollection from a thread different from the Dispatcher thread.
使用this answer爲指導,我認爲這段代碼會工作:
private ObservableCollection<string> _userMessages = new ObservableCollection<string>();
public void AddUserMessage(string message)
{
lock (_locker)
{
Action action =() =>
{
this._userMessages.Add(message);
};
Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, action);
}
}
但是,當調用Dispatcher.Invoke()
時,我的UI現在會凍結。我做錯了什麼?
注:我需要這樣做,因爲我(有時)從事件中更新我的ObservableCollection
。
userMessages.CollectionChanged中會發生什麼? – Filip 2013-04-20 16:11:14
@Filip我沒有重寫'ObservableCollection'中的任何功能。 – 2013-04-20 16:17:08