wpf – 为什么依赖属性?
发布时间:2020-12-14 01:08:50 所属栏目:百科 来源:网络整理
导读:为什么微软走了依赖属性和依赖对象的路线,而不是使用反射和属性? 这帮助我理解推理: 主要的区别是,正常的.NET属性的值直接从类中的私有成员读取,而DependencyProperty的值在调用从DependencyObject继承的GetValue()方法时动态地解析。 当设置依赖属性的
为什么微软走了依赖属性和依赖对象的路线,而不是使用反射和属性?
这帮助我理解推理:
主要的区别是,正常的.NET属性的值直接从类中的私有成员读取,而DependencyProperty的值在调用从DependencyObject继承的GetValue()方法时动态地解析。 当设置依赖属性的值时,它不会存储在对象的字段中,而是存储在基类DependencyObject提供的键和值的字典中。条目的键是属性的名称,值是您要设置的值。 依赖属性的优点如下: 减少内存占用 当你认为UI控件的超过90%的属性通常保持其初始值时,存储每个属性的字段是一个巨大的耗散。依赖属性通过只在实例中存储修改的属性来解决这些问题。默认值在依赖属性中存储一次。 价值继承 当访问依赖属性时,使用值解析策略解析该值。如果未设置本地值,则依赖性属性将向上导航逻辑树,直到找到一个值。当您在根元素上设置FontSize时,它将应用于以下所有文本块,除非您覆盖该值。 更改通知 依赖属性具有内置的更改通知机制。通过在属性元数据中注册回调,当属性的值已更改时,您会收到通知。这也由数据绑定使用。 From:WPF Tutorials。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |