定义的model类继承接口INotifyPropertyChanged,并实现PropertyChanged;
public class PersonModel: INotifyPropertyChanged
{
private int age;
public int Age
{
get { return age; }
set { age = value; SendChangeInfo("Age"); }
}
private string name;
public string Name
{
get { return name; }
set { name = value; SendChangeInfo("Name"); }
}
private string phone;
public string Phone
{
get { return phone; }
set { phone = value; SendChangeInfo("Phone"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void SendChangeInfo(string propertyName)
{
if (this.PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
将model与界面元素进行绑定
private PersonModel person = new PersonModel();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
person.Age = 18;
person.Name = "张三";
person.Phone = "111000";
numAge.DataBindings.Add("Value", person, "Age", false, DataSourceUpdateMode.OnPropertyChanged);
txtName.DataBindings.Add("Text", person, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
txtPhone.DataBindings.Add("Text", person, "Phone", false, DataSourceUpdateMode.OnPropertyChanged);
}
当你修改person的属性时,你会发现界面也会跟着动态变化,同样的修改界面值会动态改变person的属性,从而完成界面与model实例的动态绑定。
本文介绍了一个基于.NET的PersonModel类,该类通过实现INotifyPropertyChanged接口来通知界面元素属性的变化,实现了界面与模型之间的动态绑定。文章展示了如何设置属性更改通知及界面元素的数据绑定。
661

被折叠的 条评论
为什么被折叠?



