如果我更新了一个在绑定控件调度程序以外的线程上抛出INotifyPropertyChanged的属性,那么强制为该调度程序编组的更新是什么?
BackgrounWorker.Run() => { blah.Blahness = 2; // notifies property changed on BW, is this marshalled to the dispatcher? }
答案 0 :(得分:7)
是的,PropertyChanged
事件会自动编组到UI调度程序,因此您无需使用Invoke
来明确编组它。
请注意,仅对标量属性(即PropertyChanged
事件)的更改通知才有效。集合更改通知(INotifyCollectionChanged.CollectionChanged
事件)不能以这种方式工作,必须手动在UI线程上引发它们。我写了一个自动完成的课程,你可以找到它here。