WPF之创建依赖项属性

9 篇文章 0 订阅
  [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;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值