網路上已經有許多INotifyPropertyChanged的文章
看了許多但還是不太懂所以看著msdn實作了一次
1.先新增一個class
public int id { get; set; }
public string name { get; set; }
2.將class繼承INotifyPropertyChanged
using System.ComponentModel;
public class member : INotifyPropertyChanged
3.實作INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
4.修改class
public int id { get; set; }
private string _name;
public string name
{
get { return this._name; }
set
{
if (value != this._name)
{
this._name = value;
NotifyPropertyChanged("Name");
}
}
}
5.新增一個list(抓假資料如果是資料庫也可直接改)
public List GetMember(int pCount)
{
List lst = new List();
string name = "test";
for (int i = 0; i < pCount; i++)
{
member create = new member()
{
id = i,
name = name + i.ToString()
};
lst.Add(create);
}
return lst;
}
6.抓出資料
member script = new member();
List lst = script.GetMember(10);
dataGridView1.DataSource = lst;
7.寫另一個頁面去修改name
會發覺改了後dataGridview1的name也會跟著改
太神奇又好用了
參考網址
HOW TO:實作 INotifyPropertyChanged 介面
範例下載
INotifyPropertyChanged實作