这里就是我有 - 用的ItemsSource列表框设置为ObservableCollection<T>
- 其中T是我代表一个文件自定义类,只包含2 DependencyProperties:文件名和ThumbnailPath。 - 该列表框还具有定义的自定义DataTemplate,以便在其下方很好地显示图像和文件名。异步增加的ObservableCollection(或替代)
列表框的目的是为了显示在当前文件夹(在一个TreeView选择的)的视频文件,与缩略图(异步生成;不此问题的一部分)。
所以,当我改变文件夹在树视图中,是的ObservableCollection清除并重新填满,这是自动反映在ListBox中的项目。
这里的问题:用户界面变得没有反应,它需要长达几秒钟更新。再次,缩略图在这里没有意义(我试图禁用它们)。 我觉得什么花费时间最多的是我的自定义类,以及它们的视觉表现的50-100实例建设 - 它必须初始化为每一个Image对象。但这只是我的猜测 - 你能否确认或排除这种可能性?
我开始觉得的ObservableCollection可能不会去这里,因为从我读的方式,从我试用了一下,有没有办法来添加项目异步,至少如果这些项目DependencyObjects。我尝试使用BackgroundWorker创建我的类实例,并将它们添加到ProgressChanged事件处理程序中的集合中,但它会引发异常(某些线程vs依赖对象问题)。
有没有办法,我失去了一些东西?或者我可以通过简单地放弃ObservableCollection并编写一个很好的旧异步for循环来添加项目?
什么是确切的异常类型和消息? – Adam
“必须在DependencyObject的同一线程上创建DependencySource” –
'Binding,IsAsync = True'怎么办? –