silverlight
◆ Data binding(数据绑定)
◆ Styles、Template(样式、模板和风格)
◆ 路由事件、附加事件、附加行为乃至命令
◆ Animations、3D(动画和3D)
◆ WPF Designer Integration(WPF设计、开发集成)
在上一篇WPF基础到企业应用系列7——深入剖析依赖属性中,我们对依赖属性做了较详细的介绍,那么下面我们就简单回顾一下,其实依赖属性的实现很简单,只要做以下步骤就可以实现:
◆ 第一步: 让所在类型继承自 DependencyObject基类,在WPF中,我们仔细观察框架的类图结构,你会发现几乎所有的 WPF 控件都间接继承自DependencyObject类型。
◆ 第二步:使用 public static 声明一个 DependencyProperty的变量,该变量才是真正的依赖属性 ,看源码就知道这里其实用了简单的单例模式的原理进行了封装(构造函数私有),只暴露Register方法给外部调用。
◆ 第三步:在静态构造函数中完成依赖属性的元数据注册,并获取对象引用,看代码就知道是把刚才声明的依赖属性放入到一个类似于容器的地方,没有讲实现原理之前,请容许我先这么陈述。
◆ 第四步:在前面的三步中,我们完成了一个依赖属性的注册,那么我们怎样才能对这个依赖属性进行读写呢?答案就是提供一个依赖属性的实例化包装属性,通过这个属性来实现具体的读写操作。
根据前面的四步操作,我们就可以写出下面的代码:
1: public class SampleDPClass : DependencyObject
2: {
3: //声明一个静态只读的DependencyProperty字段
4: public static readonly DependencyProperty SampleProperty; 5:
6: static SampleDPClass()
7: {
8: //注册我们定义的依赖属性Sample
9: SampleProperty = DependencyProperty.Register("Sample", typeof(string), typeof(SampleDPClass),
10: new PropertyMetadata("Knights Warrior!",
OnValueChanged));