Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 了解DependencyProperty是如何工作和实现的_C#_Wpf_Windows_Silverlight 4.0 - Fatal编程技术网

C# 了解DependencyProperty是如何工作和实现的

C# 了解DependencyProperty是如何工作和实现的,c#,wpf,windows,silverlight-4.0,C#,Wpf,Windows,Silverlight 4.0,Silverlight/WPF DependencyProperty启用数据绑定并指示属性值何时发生更改,而不实现INotifyPropertyChanged。我的问题是,这在低级别上是如何工作的——当DependencyObject、DependencyProperty和DispatcherObject都未定义任何事件时,DependencyProperty或如何执行此更改通知。这和房产有关系吗 依赖项属性或DependencyObject类不是本机的 支持INotifyPropertyCha

Silverlight/WPF DependencyProperty启用数据绑定并指示属性值何时发生更改,而不实现INotifyPropertyChanged。我的问题是,这在低级别上是如何工作的——当DependencyObject、DependencyProperty和DispatcherObject都未定义任何事件时,DependencyProperty或如何执行此更改通知。这和房产有关系吗

依赖项属性或DependencyObject类不是本机的 支持INotifyPropertyChanged以生成通知 数据绑定的DependencyObject源属性值的更改数量 行动

这一出色的澄清是逐字逐句从以下内容中获得的:


好的,当您注册DependencyProperty时,您提供了一个回调,当值更改时将调用该回调


你有更多的细节。我认为WPF的内部没有其他公开的内容。我可能错了。

依赖属性在内部与绑定系统紧密集成。因此,设置依赖项属性的代码可以直接调用绑定系统并告诉它更新,而不是“通知属性已更改”

类似地,可以在任何子元素上更新继承/附着的属性和/或更新布局/度量/排列。它甚至可以告诉任何触发器(在样式或控制模板中)进行重新计算

Dispatcher实际上并不相关,但可以在过程中使用


简而言之,它被烘焙到WPF/Silverlight中。

上面的链接ref中的“DependencyProperties只能由DependencyObject类型使用”。DependencyObject派生自DispatcherObject。@Webster-是的,确实如此。你有问题吗?