Data binding = "automatic way of setting any run-time accessible property of any control on a form" [MS]
Two kinds:
There are many kinds of sources for data binding. You can bind to:
But the thing you really want to bind to for most situations is a BindingSource.
Really, we will want to do all our work using BindingSource.
However, the example below shows how to do simple data-binding to text boxes by hand. You could do this in .Net 1.x. Code is in my example VS\BasicDataBinding.
In this example:
public class Student { public Student() { name = string.Empty; grade = 0; } public Student ( string name, int grade) { this.name = name; this.grade = grade; } private string name; public string Name { get { return name; } set { name = value; } } private int grade; public int Grade { get { return grade; } set { grade = value; } } public Color GradeColor { get { return grade >= 90 ? Color.Green : grade >= 80 ? Color.Yellow : grade >= 70 ? Color.Orange : Color.Red; } } public override string ToString() { return String.Format("[{0} {1} {2}]", name, grade, GradeColor); } } public partial class Form1 : Form { public Form1() { InitializeComponent(); } Student m_student = new Student("Fred", 95); string[] m_animals = { "lions", "tigers", "bears", "pandas", "voles" }; private void Form1_Load(object sender, EventArgs e) { txtName.DataBindings.Add("Text", m_student, "Name"); txtGrade.DataBindings.Add("Text", m_student, "Grade"); txtGrade.DataBindings.Add("BackColor", m_student, "GradeColor"); txtAnimal.DataBindings.Add("Text", m_animals, null); } private void btnReport_Click(object sender, EventArgs e) { MessageBox.Show(m_student.ToString()); } private void btnNext_Click(object sender, EventArgs e) { BindingManagerBase mgr = this.BindingContext[m_animals]; ++mgr.Position; } private void btnPrev_Click(object sender, EventArgs e) { Binding binding = txtAnimal.DataBindings["Text"]; BindingManagerBase mgr = binding.BindingManagerBase; --mgr.Position; } }