更新我的时ObservableCollection
,我收到此错误:
这种类型的 CollectionView 不支持从不同于 Dispatcher 线程的线程更改其 SourceCollection。
使用这个答案作为指导,我认为这段代码可以工作:
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);
}
}
但是,我的 UI 现在在调用Dispatcher.Invoke()
. 我做错了什么?
注意:我需要这样做,因为我(有时)会更新我ObservableCollection
的事件。