NDP - ADO.NET 2.0
Data-binding basics

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;
        }
    }