//to hook teh event after you set the datasource
CurrencyManager cm = (CurrencyManager)this.BindingContext[grid.DataSource, grid.DataMember];
IBindingList ibl = cm.List as IBindingList;
if(ibl != null)
ibl.ListChanged += new ListChangedEventHandler(ibl_ListChanged);
//the handler
private void ibl_ListChanged(object sender, ListChangedEventArgs e)
{
if(e.ListChangedType == ListChangedType.ItemChanged)
{
grid.RefreshRange(GridRangeInfo.Row(e.NewIndex + 1), true);
}
}
private void button1_Click(object sender, System.EventArgs e) { CustomerCollection customers = (CustomerCollection)this.dataGrid1.DataSource; Customer cust = customers[0]; cust.FirstName = "aaaaa"; this.gridDataBoundGrid1.Refresh(); }