using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { people p = new people("Name1"); p.PropertyChanged += new EventHandler(p_PropertyChanged);//注冊事件處理函數 p.Name = "Name2"; Console.ReadKey(); } static void p_PropertyChanged(object sender, EventArgs e)//事件的處理函數 { Console.WriteLine("NamePropertyChanged:"+(sender as people).Name); } } class people {
//事件名
public event EventHandler PropertyChanged; private string name=String .Empty; public people(string name) { this.name = name; } public string Name { get { return name; } set { name = value; this.OnPropertyChanged(new EventArgs());//每次改變Name值調用方法; } } private void OnPropertyChanged(EventArgs eventArgs) { if (this.PropertyChanged != null)//判斷事件是否有處理函數 { this.PropertyChanged(this, eventArgs); } } } }
如上面的代碼實例可知,當name屬性變化時,觸發了PropertyChanged事件,開發人員就可以在調用此類時,當name屬性發生改變時,做相應的處理。