To reproduce :
Create a self-referencing hierarchy, bind it to a BindingList and delete the row with either the delete button or from the context menu and click the deleted item.
Workaround :
Find the object that has to be deleted, hide the selected row and remove the found object from the data source.
void radGridView1_UserDeletingRow(object sender, GridViewRowCancelEventArgs e)
{
e.Cancel = true;
int id = int.Parse(e.Rows[0].Cells["Id"].Value.ToString());
var human = this.humans.FirstOrDefault(x => x.Id == id);
if (human != null)
{
this.radGridView1.SelectedRows[0].IsVisible = false;
this.humans.Remove(human);
}
}