Create a form with a datagridview on it, then paste the code at the end of
the post into the form file. Now, try the following: write something into
column one, move to next cell and press the escape key. The system throws and
InvalidOperationException and gives you a gnarly looking call stack. Any
known workarounds?

-------------------------- code ------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ControlTester
{
public partial class Form6 : Form
{
BindingList<Binder> datasource;
BindingSource bindSource;

public Form6()
{
InitializeComponent();

this.datasource = new MyBindingList();

bindSource = new BindingSource();
bindSource.AllowNew = true;

bindSource.DataSource = datasource;
this.dataGridView1.DataSource = bindSource;
}

private class MyBindingList : BindingList<Binder>
{}

private class Binder
{
int value;
string desc;

public Binder() : this(0, "Autogenerated")
{}

public Binder(int value, string desc)
{
this.value = value;
this.desc = desc;
}

public int Value
{
get { return this.value; }
set { this.value = value; }
}

public string Description
{
get { return this.desc; }
set { this.desc = value; }
}
}

}
}