[url=
http://www.51zxw.net/study.asp?vip=8963801] 学IT必看,【经典】 【基础】 【进阶】 【实践 】 【成神】【超神】【返璞归真】
[/url]
[/url]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WpfDependencyObject
{
//定义依赖属性的类必须集成 DependencyObject的类
public class DependencyEx : System.Windows.DependencyObject
{
#region 第一步 定义依赖项属性
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));
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.一个用于验证属性的回调函数, 该要素是可选的
///1.属性名称 (该例子中是 MyTest)
///2.属性使用的数据类型(该例子中是 int)
///3.拥有该属性的类型(该例子中是 DependencyEx)
///4.一个具有附加属性设置的 FrameworkPropertyMetadata 对象, 该要素是可选的
///5.一个用于验证属性的回调函数, 该要素是可选的
#endregion
}
#endregion
public int MyTest
{
set { SetValue(MyTestProperty,value); }
get { return (int)GetValue(MyTestProperty); }
}
{
set { SetValue(MyTestProperty,value); }
get { return (int)GetValue(MyTestProperty); }
}
#endregion
public static bool Test(object obj) { return true; } }
原文链接:https://www.f2er.com/javaschema/285523.html