WPF尝试理解依赖属性
WPF尝试理解依赖属性
前言:
学习一种东西,先要了解这个东西是什么。
依赖属性最重要一个特点就是属性值依赖于一个,或者多个数据源,提供这些数据源的方式也可以不 同,所以因为依赖多数据源的缘故,故称之为依赖属性。
所以在学习和使用WPF的时候,总会有一个疑问,依赖属性跟普通的类属性有什么区别?大概是因为在WinForm的时代,控件类(比如TextBox)都会包含许多属性,但是真正用到的少之又少(比如text),其他属性就会白白耗费内存资源。如果只生成一个控件对象,“无用”的属性对性能影响不大,当你在一个窗体实例化几 十个控件对象的时候,内存消耗就很可观了。
所以依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值。依赖属性可支 持WPF中的样式设置、数据绑定、继承、动画及默认值。
比如:
在深入了解依赖属性之前,很有必要弄清楚依赖属性是如何敲出来的。假设有一个Cat类,现在我要定义一个依赖属性ColorProperty
可能是WPF 框架中定义的某些依赖项属性为只读。当实现 CLR“包装”属性时,请确保该包装也没有设置的实现,以使公开的公共包装的只读状态中不存在不一致现象。
依赖属性的特点:
当然无论什么时候,只要依赖属性的值发生改变,wpf就会自动根据属性的元数据触发一系列的 动作,这些动作可以重新呈现UI元素,也可以更新当前的布局,刷新数据绑定等等,这种变 更的通知最有趣的特点之一就是属性触发器,它可以在属性值改变的时候,执行一系列自 定义的动作,而不需要更改任何其他的代码来实现。