INotifyPropertyChanged从Dotnet2就存在了,也一向用在数据绑定上。你的情况数据源是要实现该接口。    public partial class Form1 : Form, INotifyPropertyChanged  //<--实现INotifyPropertyChanged  
    {
        public string _s = "xyz";
        public string S
        {
            get { return _s; }
            set { if (_s != value) { _s = value; FirePropertyChanged("S"); } } //<--通知属性更改,相关控件可以更新显示
        }        #region INotifyPropertyChanged Members
        public event PropertyChangedEventHandler PropertyChanged;
        void FirePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null) propertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
        #endregion
    }

解决方案 »

  1.   

    知道了,而且修改值的时候要操作属性S,而不是私有成员_s
    在set里面去触发EventHandler通知所有的观察者。这些观察者在DataBinding.Add的时候自动会注册到实现了INotifyPropertyChanged接口的对象上面。现在很清楚了。多谢!
      

  2.   

    知道了,而且修改值的时候要操作属性S,而不是私有成员_s
    在set里面去触发EventHandler通知所有的观察者。这些观察者在DataBinding.Add的时候自动会注册到实现了INotifyPropertyChanged接口的对象上面。现在很清楚了。多谢!学习了