作为一个刚刚毕业的实习生,还找的一份跟编程有关的工作,做练习的时候当然少不了用到INotifyPropertyChanged,主要作用是用来发送一个更改的通知。
若要继承INotifyPropertyChanged接口,需要打开System.ComponentModel命名空间;
后台代码示例:
<pre name="code" class="csharp"> using System.ComponentModel;
public class People : INotifyPropertyChanged
{
private string _title;
public string Title
{
get
{
return _title;
}
set
{
if (value != this._title)
{
this._title = value;
NotifyPropertyChanged("Title");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
前端代码示例:
using System.Collections.ObjectModel;
private ObservableCollection<People> _listPeople = null;
public static ObservableCollection<People> GetPerson()
{
ObservableCollection<People> listPerson = new ObservableCollection<People>();
for (int i = 0; i < 5; i++)
{
People msg1 = new People()
{
Title = "Message Title " + i.ToString(),
OpenedBy = (i % 2 == 0) ? "蓝天" : "白云",
OpenTime = DateTime.Now,
Content = (i % 2 == 0) ? "青山" : "绿水",
Validated=true,
Age="20"
};
listPerson.Add(msg1);
}
return listPerson;
}
private void LoadButton_Click(object sender, RoutedEventArgs e)
{
_listPeople = GetPerson();
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
People bc = new People();
bc.Content = this.Textbox2.Text;
bc.Title = this.Textbox3.Text;
bc.OpenedBy = this.Textbox4.Text;
bc.OpenTime =Convert.ToDateTime(this.time1.SelectedValue);
bc.Age = Convert.ToString(this.cboage.Text);
bc.Validated = true;
_listPeople.Add(bc);
}