实现目的:
控件和对象双向数据绑定
实现结果:
1. 对象值 -> 控件值
2. 控件值 -> 对象值
using System; using System.Windows.Forms; namespace ControlDataBind { public partial class MainForm : Form { People people = new People(); public MainForm() { InitializeComponent(); } private void btnBind_Click(object sender, EventArgs e) { people.Name = "对象"; people.Age = 3; txtName.DataBindings.Add("Text", people, "Name"); txtAge.DataBindings.Add("Text", people, "Age"); } private void btnGetData_Click(object sender, EventArgs e) { MessageBox.Show($"对象信息,Name={people.Name},Age={people.Age}"); } private void btnSetData_Click(object sender, EventArgs e) { people.Name = "111"; } } }
using System.ComponentModel; namespace ControlDataBind { public class People : INotifyPropertyChanged { string _name; int _age; public string Name { get { return _name; } set { _name = value; OnPropertyChanged(nameof(Name)); } } public int Age { get { return _age; } set { _age = value; OnPropertyChanged(nameof(Age)); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) //属性变更通知 { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } }