WPF依赖属性1

2021-08-16 02:58

阅读:702

标签:类型   元素   数据绑定   核心   div   wpf   数据   实例   参数         属性是.net的核心部分,是每个.net程序员都必须熟悉的特性,但是在wpf中引入了依赖属性的概念,依赖属性和原来属性的定义完全不一样,wpf通过依赖属性改变了元素属性的定义方式,依赖属性为wpf的数据绑定、动画以及样式,都起到了关键的作用,所以理解依赖属性,对于理解wpf至关重要。       C#的普通属性的定义,我们十分熟悉,他是一个成员变量,增加了get/set 方法实现的一种访问器,基本定义如下: class Example {     private string name;     public string Name {         get { return name; }         set { name = value; }      } } 依赖属性的定义,比以上的步骤就复杂多得多,所有具有依赖属性的类,都是继承自DependencyObject,如何定义一个依赖属性呢,一般要经过3个步骤, 1、定义依赖属性 依赖属性的必须是静态的,且类型是DependencyProperty public static DependencyProperty NameProperty;  2、注册依赖属性    初始化的过程,可以直接写在定义的地方,也可以写在构造函数里面,但是最好不要写在其他地方,避免属性调用的时候,无法控制其是否初始化,造成没有必要的麻烦。注册依赖属性,通过DependencyProperty对象的Register的方法,其具有五个参数: 属性的名称; 属性的类型; 拥有该属性的类型; 还有一个FrameworkPropertyMetadata的实例,这个是一个具有附加属性设置对象,这个元素可选,这个在后面在讲解。 一个用于验证的回调函数,该元素也是可选的。    注册一般做法有两种,其定义如下,我们对4、5的可选参数暂不定义:     做法1: public static DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Example))    做法2: public Example() {      NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Example));   } 我是比较推荐第一种方法,比较简单明了。 3、添加属性包装器 创建依赖属性的最后一步,就是使用传统的属性封装依赖属性,使得依赖属性和传统属性的特性,由于传统属性具有一个成员字段,而依赖属性没有,所以依赖属性的定义和传统属性的定义也不一样,其定义如下: class Example:DependencyObject {      public Example()      {     }      public static DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Example));      public String Name {         set { SetValue(NameProperty, value); }          get { return (string)GetValue(NameProperty); }      } } 以上就是一个依赖属性的最基本定义,我们使用依赖属性试试。 Example e = new Example(); e.Name = "333"; MessageBox.Show(e.Name); 是不是使用方式和传统属性很相似WPF依赖属性1标签:类型   元素   数据绑定   核心   div   wpf   数据   实例   参数   原文地址:http://www.cnblogs.com/minhost/p/7493365.html


评论


亲,登录后才可以留言!