深入理解依赖属性:创建自定义控件的关键
在开发自定义控件时,依赖属性是一个非常重要的概念。下面我们将详细介绍依赖属性的相关知识,包括其定义、作用、注册、使用等方面。
1. 依赖属性的概念
在创建WPF时,开发团队发现标准的CLR属性无法完全满足新的呈现技术的要求。标准属性在值改变时不会自动通知相关绑定,而且无法根据外部源(如数据绑定表达式)自行计算或解析其值。为了满足这些需求,引入了依赖属性的概念,并且该概念也被应用到了Silverlight中。
依赖属性之所以得名,是因为其值依赖于外部源,如数据绑定或资源。
2. 为什么需要依赖属性
依赖属性可能是Silverlight中较难理解的概念之一,但即使你不打算创建自定义控件,也应该理解这个基本概念。
当你在控件上实现标准属性时,某些属性可能是可以接受的。但一旦你需要为某个属性分配标记表达式,运行应用程序时就会抛出异常。因为任何分配了标记扩展(如数据绑定表达式)的属性都必须是依赖属性。标记表达式在运行时求值,因此属性需要识别它已被分配了标记表达式并对其进行求值。将绑定标记扩展分配给标准属性会导致XAML引擎尝试将绑定对象分配给该属性,这通常会导致异常,因为它试图(但失败)将绑定对象转换为属性的类型(如字符串、整数或布尔值)。
3. 注册依赖属性
要在类上声明依赖属性,首先要确保该类继承自 DependencyObject 类。依赖属性的存储和计算值等功能实际上是由这个类提供的,因此你的控件需要继承它才能启用这些功能。通常,你为控件继承的类(如 UserControl 、
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



