加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

WPF之创建依赖项属性

发布时间:2020-12-13 23:01:00 所属栏目:百科 来源:网络整理
导读:[url= http://www.51zxw.net/study.asp?vip=8963801] 学IT必看,【经典】 【基
[url= http://www.51zxw.net/study.asp?vip=8963801] 学IT必看,【经典】 【基础】 【进阶】 【实践 】 【成神】【超神】【返璞归真】
[/url]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WpfDependencyObject
{
//定义依赖属性的类必须集成 DependencyObject的类
public class DependencyEx : System.Windows.DependencyObject
{
#region 第一步 定义依赖项属性
//第一步定义表示属性的对象 ,它是DependencyProperty类的一个实例
//根据约定,定义依赖属性的字段的名称为在普通属性的末尾加上单词“Property”
public static readonly System.Windows.DependencyProperty MyTestProperty;
#endregion

#region 第二步 注册依赖项属性
///这一步需要在任何使用属性的代码前完成,因此它必须在与之关联的类的静态构造函数中进行
public static DependencyEx()
{
///注册依赖项属性需要两个步骤
#region 首相创建一个 FrameworkPropertyMetadata 对象 ,该对象指示要通过依赖项属性做什么服务(如支持数据绑定,动画以及日资)
System.Windows.FrameworkPropertyMetadata metadata = new System.Windows.FrameworkPropertyMetadata(new int(),System.Windows.FrameworkPropertyMetadataOptions.AffectsParentMeasure);
#endregion
#region 接下来通过调用DependencyProperty.Register()静态方法注册属性
MyTestProperty = System.Windows.DependencyProperty.Register("MyTest",typeof(int),typeof(DependencyEx),metadata,new System.Windows.ValidateValueCallback(Test));
///DependencyProperty.Register();
///1.属性名称 (该例子中是 MyTest)
///2.属性使用的数据类型(该例子中是 int)
///3.拥有该属性的类型(该例子中是 DependencyEx)
///4.一个具有附加属性设置的 FrameworkPropertyMetadata 对象, 该要素是可选的
///5.一个用于验证属性的回调函数, 该要素是可选的

#endregion
}
#endregion

#region 第三步 添加属性包装器
public int MyTest
{
set { SetValue(MyTestProperty,value); }
get { return (int)GetValue(MyTestProperty); }
}
#endregion

private void test()
{
ClearValue(MyTestProperty); //删除本地设置用的
}
public static bool Test(object obj) { return true; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读