看书,以前看过委托和事件,有部分理解,但是又忘了。还是请教下大家吧。using System.ComponentModel; 
namespace DataBinding_Address 

    public class Address : INotifyPropertyChanged
   { 
        public event PropertyChangedEventHandler PropertyChanged; 
        private string _name = ""; 
        public string Name 
        { 
            get { return _name; } 
            set { 
                   _name = value; 
                   if(PropertyChanged != null) 
                   { 
                    PropertyChanged(this, new PropertyChangedEventArgs("Name")); 
                   } 
                } 
        } 
    } 
}
  } 
}问题一:“INotifyPropertyChanged”这个接口都有那些方法呢?给“PropertyChangedEventHandler”委托定义了“PropertyChanged”事件,调用事件“PropertyChanged(this, new PropertyChangedEventArgs("Name"));”。
问题二:“PropertyChangedEventHandler”委托从哪里来的?
“PropertyChanged(this, new PropertyChangedEventArgs("Name"));”中,“this”代表事件的发送者,也就是这个类。
问题三:“new PropertyChangedEventArgs("Name")”指什么呢?

解决方案 »

  1.   

    关于 问题一
    你想知道“INotifyPropertyChanged”有哪些方法要实现,最简单的方法是右键点击“INotifyPropertyChanged”,然后选择“转到定义(G)”菜单,你将看到这个接口的完整定义。
    对于其它类的接口也是一样,这是一个非常实用的菜单,请记住!关于 问题二
    给“PropertyChangedEventHandler”委托定义了“PropertyChanged”事件
    事件本质其实也是委托,只是换了个马甲而已。
    PropertyChangedEventHandler委托是调用这个类(Address)的用户(专业说法是这个类的客户)提供的,如果调用者关心这个方法的话。关于 问题三
    这是调用构造方法,实现化一个PropertyChangedEventArgs对象。请记住“转到定义(G)”这个菜单!
      

  2.   

    INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。 
    例如,考虑一个带有名为 FirstName 属性的 Person 对象。若要提供一般性属性更改通知,则 Person 类型实现 INotifyPropertyChanged 接口并在 FirstName 更改时引发 PropertyChanged 事件。
    若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列任一功能: 
    实现 INotifyPropertyChanged 接口(首选)。
    为绑定类型的每个属性提供更改事件。
      

  3.   

    问题一:“INotifyPropertyChanged”这个接口都有那些方法呢?F12进去看问题二:“PropertyChangedEventHandler”委托从哪里来的?MSDN去查EventHandler
      

  4.   


    对于你提问的东西 我建议你如果不懂 先转到定义 看看定义是怎么解释的 如果还是不懂  那就不懂的地方(单词)+msdn 搜一下 
      

  5.   

     // Summary:
        //     Notifies clients that a property value has changed.
        public interface INotifyPropertyChanged
        {
            // Summary:
            //     Occurs when a property value changes.
            event PropertyChangedEventHandler PropertyChanged;
        }// Summary:
        //     Represents the method that will handle the System.ComponentModel.INotifyPropertyChanged.PropertyChanged
        //     event.
        //
        // Parameters:
        //   sender:
        //     The source of the event.
        //
        //   e:
        //     A System.ComponentModel.PropertyChangedEventArgs that contains the event
        //     data.
        public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e);