#121 – Being Notified When the Value of a Dependency Property Changes(属性值改变通知)

来源:互联网 发布:win10广告屏蔽软件 编辑:程序博客网 时间:2024/06/07 05:30

原文地址:https://wpf.2000things.com/2010/11/10/121-being-notified-when-the-value-of-a-dependency-property-changes/

一个应用了依赖属性的类可以选择当属性值发生改变的时候发出通知。要实现通知,该类在注册属性的时候要指定一个PropertyChangedCallback

PropertyMetadata ageMetadata =    new PropertyMetadata(        18,     // Default value        new PropertyChangedCallback(OnAgeChanged),   // ** call when property changes        new CoerceValueCallback(OnAgeCoerceValue)); // Register the propertyAgeProperty =    DependencyProperty.Register(        "Age",                 // Property's name        typeof(int),           // Property's type        typeof(Person),        // Defining class' type        ageMetadata,           // Defines default value & callbacks  (optional)        new ValidateValueCallback(OnAgeValidateValue));   // validation (optional)

该类可以使用回调函数在属性值发生改变的时候执行一些逻辑操作,例如自动给其他属性赋值。

private static void OnAgeChanged    (DependencyObject depObj, DependencyPropertyChangedEventArgs e){    Person p = (Person)depObj;    p.AARPCandidate = (int)e.NewValue > 60 ? true : false;}




0 0
原创粉丝点击