解决方案的设置有点复杂,限制了我的选择。
由于文档是在后台线程中生成的,因此该线程无法将文档添加到集合中 - 会生成NotSupportedException。
有几种方法可以将ObservableCollections扩展为线程安全 - 遗憾的是,到目前为止我所看到的所有方法都依赖于System.Windows.Threading.Dispatcher,由于(2)我无法使用它。
我发现I cannot use INotifyPropertyChanged on a list and must use a collection implementing INotifyCollectionChanged - 基本上是ObservableCollection。当有很多不同的方法修改它时,我不确定实现List对象的扩展是否是一个好主意,并且说它与ObservableCollection没有相同的问题?
在绑定上使用显式UpdateSourceTrigger看起来不可行,因为Document在HierarchicalDataTemplate中,并且无论如何将绑定传递给Project对象看起来有点难看。
有什么建议吗?
答案 0 :(得分:2)
在后台线程上创建文档,但在主线程上使用回调将其添加到ObservableCollection(假设在主线程上创建了ObservableCollection)。