【问题标题】:What exactly WPF runtime does after raising the PropertyChanged event of INotifyPropertyChanged interfaceWPF 运行时在引发 INotifyPropertyChanged 接口的 PropertyChanged 事件后究竟做了什么
【发布时间】:2013-07-25 10:20:23
【问题描述】:

我在面试中被问到这个问题

“当我们想要在 ViewModel 中更新后端绑定的属性时,在视图上反映属性的更改值时,我们通常会引发通过实现 INofityPropertyChanged 接口给出的事件。”

“所以,问题是我们没有将任何事件处理程序绑定到 propertychanged 事件,它是 wpf 运行时执行的。所以,在从 ViewModel 引发 propertychanged 事件之后究竟会发生什么。

【问题讨论】:

标签: .net wpf mvvm mvvm-foundation simple-mvvm


【解决方案1】:

在 WPF 中,Dispatcher 在循环中处理大多数(可能是所有)UI 工作项,例如队列。不同的工作项有不同的优先级,以便 Dispatcher 可以及时处理一些具有很高优先级的项。

引发属性更改事件将转移到数据绑定任务,并将以 DataBinding 优先级放入 Dispatcher 的队列中。 Dispatcher 将管理该 item 在队列中的位置并执行它,即在适当的时候更新这里的数据绑定。

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2012-07-23
    • 2016-09-10
    • 2023-03-15
    • 2012-10-17
    • 2021-06-04
    • 1970-01-01
    • 2018-07-30
    • 2019-10-06
    相关资源
    最近更新 更多