加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

wpf – 为什么依赖属性?

发布时间:2020-12-14 01:08:50 所属栏目:百科 来源:网络整理
导读:为什么微软走了依赖属性和依赖对象的路线,而不是使用反射和属性? 这帮助我理解推理: 主要的区别是,正常的.NET属性的值直接从类中的私有成员读取,而DependencyProperty的值在调用从DependencyObject继承的GetValue()方法时动态地解析。 当设置依赖属性的
为什么微软走了依赖属性和依赖对象的路线,而不是使用反射和属性?
这帮助我理解推理:

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

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

依赖属性的优点如下:

减少内存占用

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

价值继承

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

更改通知

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

From:WPF Tutorials。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读