WPF中监视DependencyProperty的变化

              WPF中监视DependencyProperty的变化spa

                     周银辉code

 

尽管一个类会提供不少事件,但有时候仍是显得不够,好比说前两天我就觉得WPF的ListBox控件会有ItemsSourceChanged事件,但好像没有。这里有一个方法能够监视任何一个DependencyProperty的Changed,下面是demo:blog

    public class People : DependencyObject
    {
        public static readonly DependencyProperty NameProperty =
            DependencyProperty.Register("Name", typeof (string), typeof (People), new PropertyMetadata(default(string)));

        public string Name
        {
            get { return (string) GetValue(NameProperty); }
            set { SetValue(NameProperty, value); }
        }
    }

//.........
        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            var people = new People {Name = "zhang san"};

            var descriptor =  DependencyPropertyDescriptor.FromProperty(People.NameProperty, typeof (People));
            descriptor.AddValueChanged(people, (o, args) => MessageBox.Show("name changed to " + people.Name));

            people.Name = "Li si";
        }
相关文章
相关标签/搜索