C# 了解DependencyProperty是如何工作和实现的
Silverlight/WPF DependencyProperty启用数据绑定并指示属性值何时发生更改,而不实现INotifyPropertyChanged。我的问题是,这在低级别上是如何工作的——当DependencyObject、DependencyProperty和DispatcherObject都未定义任何事件时,DependencyProperty或如何执行此更改通知。这和房产有关系吗 依赖项属性或DependencyObject类不是本机的 支持INotifyPropertyChanged以生成通知 数据绑定的DependencyObject源属性值的更改数量 行动 这一出色的澄清是逐字逐句从以下内容中获得的:C# 了解DependencyProperty是如何工作和实现的,c#,wpf,windows,silverlight-4.0,C#,Wpf,Windows,Silverlight 4.0,Silverlight/WPF DependencyProperty启用数据绑定并指示属性值何时发生更改,而不实现INotifyPropertyChanged。我的问题是,这在低级别上是如何工作的——当DependencyObject、DependencyProperty和DispatcherObject都未定义任何事件时,DependencyProperty或如何执行此更改通知。这和房产有关系吗 依赖项属性或DependencyObject类不是本机的 支持INotifyPropertyCha
好的,当您注册DependencyProperty时,您提供了一个回调,当值更改时将调用该回调
你有更多的细节。我认为WPF的内部没有其他公开的内容。我可能错了。依赖属性在内部与绑定系统紧密集成。因此,设置依赖项属性的代码可以直接调用绑定系统并告诉它更新,而不是“通知属性已更改” 类似地,可以在任何子元素上更新继承/附着的属性和/或更新布局/度量/排列。它甚至可以告诉任何触发器(在样式或控制模板中)进行重新计算 Dispatcher实际上并不相关,但可以在过程中使用
简而言之,它被烘焙到WPF/Silverlight中。上面的链接ref中的“DependencyProperties只能由DependencyObject类型使用”。DependencyObject派生自DispatcherObject。@Webster-是的,确实如此。你有问题吗?