对WPF依赖项属性的理解-创新互联

   属性和事件是.NET抽象模型的核心部分, 而WPF中则用更高级的依赖项属性(Dependency Property)代替了原来.NET中的属性.依赖项属性主要应用于自定义元素中,用于为自定义元素注入自定义的属性.

创新互联公司服务项目包括歙县网站建设、歙县网站制作、歙县网页制作以及歙县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,歙县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到歙县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

  以下是定义和注册依赖项属性的方法:

//声明并注册依赖项属性 FoodProperty
public static DependencyProperty FoodProperty = 
    DependencyProperty.Register("Food", typeof(Food), typeof(FoodManager), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnFoodChanged)));

   调用DependencyProperty.Register()静态方法为依赖项属性注册,在这个方法中,有5个参数:属性名(上面的"Food"),属性使用的数据类型,拥有该属性的类,一个具有附加属性设置的FrameworkPropertyMetadata对象(上面的FrameworkPropertyMetadata对象中传入了一个属性改变时的回调函数),一个用于验证属性的回调函数. 其中,后面2个是可选的.

   然后添加属性包装器:

Public Food Food
{
    get{ return (Food)GetValue(FoodProperty);}
    set{ SetValue(FoodProperty,value);}
}

  如果是自定义元素,添加属性包装器后, 在使用控件时就能使用该属性. 当然, 如果要在属性变化时触发代码, 就要实现注册依赖项属性时的回调函数(本例中的OnFoodChanged()).

   上面只是依赖项属性的部分内容, 依赖项属性还可以插入其它WPF服务, 以及支持验证回调和强制回调.

   PS: 当你为自定义元素注入一个枚举类型的依赖项属性时, 会出现一个很方便有趣的现象: VS2010的编辑器会把枚举类型中的内容列举出来, 以供你选择. 就好像你给Border设置Background一样.

   建议学习WPF的人去看《WPF编程宝典》, 内容实在太全面了, 而且每一章节都有对应的源码.

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文标题:对WPF依赖项属性的理解-创新互联
文章来源:http://pwwzsj.com/article/ceejco.html