WPF 是否将 NotifyPropertyChangeds 编码到调度程序?

标签 wpf inotifypropertychanged dispatcher

如果我更新的属性在绑定(bind)控件的调度程序以外的线程上抛出 NotifyPropertyChanged,更新是否会被强制编码到此调度程序?

BackgrounWorker.Run() => { blah.Blahness = 2; // notifies property changed on BW, is this marshalled to the dispatcher? }

最佳答案

是的,PropertyChanged 事件会自动编码到 UI 调度程序,因此您无需使用 Invoke 显式编码它。

请注意,它仅适用于标量属性的更改通知(即 PropertyChanged 事件)。集合更改通知(INotifyCollectionChanged.CollectionChanged 事件)不能以这种方式工作,它们必须在 UI 线程上手动引发。我写了一个自动完成的类,你可以找到它here .

关于WPF 是否将 NotifyPropertyChangeds 编码到调度程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773908/

相关文章:

c# - 如何处理来自 BackgroundWorker 线程的异常?

wpf - 调度程序:中止调度程序操作

wpf - 为什么我需要调用 Dispatcher.BeginInvoke() 以允许视觉对象在打印之前正确绑定(bind)?

wpf - OnPropertyChanged 的​​替代品

multithreading - 在线程上创建工作队列

c# - 如何使用 mvvm 在 ModernWindow 中正确加载内容

c# - 使用转换器将窗口标题绑定(bind)到属性

wpf - 这不是等待形式,但需要线程完成通知

c# - MVVM字段集与INotifyPropertyChanged实现类上的引用事件

c# - 在 ViewModel 中更新 View