当绑定到Silverlight 3和4中的属性时,Windows Phone 7版本的Silverlight和WPF 3.5和4中的属性更改通知是否总是被编组到UI线程?您是否知道我不能依赖它并且必须在我的代码中进行编组的任何场景?
答案 0 :(得分:7)
我做了一些实验......
<强> INotifyPropertyChanged的强>
如果您从后台线程更改属性,并从该后台线程触发INotifyPropertyChanged,并且该属性是数据绑定,则...
<强>的DependencyProperty 强>
如果属性是依赖属性而不是INotifyPropertyChanged怎么办?如果从后台线程更改此属性该怎么办?好吧,我还没有做过任何实验,但我读到它没有做任何编组。
INotifyCollectionChanged(例如ObservableCollection)
如果你从后台线程中添加/删除ObservableCollection中的元素,并且该集合被数据绑定到列表框或类似内容,那么会发生什么?
答案 1 :(得分:2)
是的,收藏品。绑定到可观察集合并从非UI线程更改它时,您将获得异常。您必须将集合更改封送到UI线程。