【C#】【Form】binding ~ データバインディング ~

■ Binding.Parse イベント

 * データ連結コントロールの値が変更されると発生する

ConvertEventHandler デリゲート

 * Binding.Parse イベントおよび Format イベントを処理するメソッド

参考文献

http://blogs.msdn.com/b/nakama/archive/2009/02/26/part-1.aspx
http://d.hatena.ne.jp/panda728z/20070507

■ BindingList

 * 双方向のデータ バインディング機構を作成できる。
 * DataGridViewにListを使用したい場合、BindingListを使用した方がいい。

サンプル

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; } 
}

// ここで、Listだと、一回目はDataGridViewに表示されるが、
// 再度入力した際に、DataGridViewに値が更新されない
// ★Listの場合、データバインディングをサポートしていないため、
//   値が更新されたことがDataGridView側に通知されない。
//   その結果、値が更新されない
//
// List<Person> list = new List<Person>();
BindingList<Person> list = new BindingList<Person>();

private void button1_Click(object sender, EventArgs e)
{
    Person person = new Person();
    person.Name = this.textBox1.Text;
    person.Age = Int32.Parse(this.textBox2.Text);

    this.list.Add(person);

    this.dataGridView1.DataSource = this.list;
}