wpf – 为什么依赖属性?

前端之家收集整理的这篇文章主要介绍了wpf – 为什么依赖属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么微软走了依赖属性和依赖对象的路线,而不是使用反射和属性
这帮助我理解推理:

主要的区别是,正常的.NET属性的值直接从类中的私有成员读取,而DependencyProperty的值在调用从DependencyObject继承的GetValue()方法时动态地解析。

当设置依赖属性的值时,它不会存储在对象的字段中,而是存储在基类DependencyObject提供的键和值的字典中。条目的键是属性名称,值是您要设置的值。

依赖属性的优点如下:

减少内存占用

当你认为UI控件的超过90%的属性通常保持其初始值时,存储每个属性的字段是一个巨大的耗散。依赖属性通过只在实例中存储修改属性解决这些问题。默认值在依赖属性中存储一次。

价值继承

当访问依赖属性时,使用值解析策略解析该值。如果未设置本地值,则依赖性属性将向上导航逻辑树,直到找到一个值。当您在根元素上设置FontSize时,它将应用于以下所有文本块,除非您覆盖该值。

更改通知

依赖属性具有内置的更改通知机制。通过在属性元数据中注册回调,当属性的值已更改时,您会收到通知。这也由数据绑定使用。

From:WPF Tutorials

猜你在找的设计模式相关文章