There seems to be some sort of anomaly when deleting rows from a grid bound to an EntityCollection. When deleting a row from the Windows Forms datagrid the row is deleted, but other bound grids (specifically Infragistics WinGrid) showing the same data do not reflect the row deletion.
When deleting a row from the Infragistics WinGrid the row does not appear to delete although the collection does remove the Entity, which cause problems with the grid later.
I noticed that in both cases EntityCollection2.RemoveAt is called, and RemoveAt differs slightly from the Remove method in that it does not contain the following two lines of code:
OnListChanged(index, ListChangedType.ItemDeleted);
// remove subscribtion to the changed event.
entityToRemove.EntityContentsChanged -= new EventHandler(EntityInListOnEntityContentsChanged);
When these lines were added to RemoveAt things appear to work as desired.