使用DataBing可以实现自动绑定,为Form定义一个实体模型,将控件的属性与实体模型中的属性绑定在一起,当页面控件的属性值改变时,模型中的属性值自动更新,不需要一一再去获取;当模型中的属性值修改时,控件的属性值也会自动更新。
模型基类,实现INotifyPropertyChanged接口,可以通知客户端属性性已更改
public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string propertyName="")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
页面的模型:
Public class UserInfo:ViewModelBase
{
string userName;
public string UserName
{
get{return userName; }
set
{
userName= value;
OnPropertyChanged();
}
}
int age;
public int Age
{
get{return age; }
set
{
age= value;
OnPropertyChanged();
}
}
}
Form页面 控件绑定:
Form1_Load事件处理程序:
UserInfo userInfo=null;
private void Form1_Load(object sender, EventArgs e)
{
userInfo=new UserInfo ();
txtUserName.DataBindings.Add(“Text”, userInfo, “UserName”);
txtUserAge.DataBindings.Add(“Text”, userInfo, “Age”);
}