In my mind the CancelEdit() behavior is the correct behavior. This IEO.CancelEdit() behavior only exists because of the way Windows Forms data binding interacts with IEO for in-place editing in a grid.
In fact, Microsoft disliked this so much that in .NET 2.0 they changed data binding to not use it either. Instead, they did what should have been done in the first place and moved the removal of the child into the collection (ICancelAddNew) where it belongs.
I have left this code in CSLA to support 1.x style data binding (in particular the use of older grid controls).
Ok cool that seems reasonable. So just conforming that it is there simply for backwards compatibility and that if one wasn't interested in backwards compatibility the bolded code would be removed from IEO.CancelEdit() and the ICancelAddNew interface that you have included in the list base classes will cover the functionality that is removed from CancelEdit.
Is that correct?
Thanks
Anthony
Copyright (c) Marimer LLC