public override void CancelEdit ()
{
if (IsAddingNew)
throw new InvalidOperationException ("Cannot cancel edit while adding new");
if (IsEditingItem) {
if (!CanCancelEdit)
throw new InvalidOperationException ("Cannot cancel edit when CanCancelEdit is false");
((IEditableObject) CurrentEditItem).CancelEdit ();
CurrentEditItem = null;
IsEditingItem = false;
CanCancelEdit = false;
UpdateCanAddNewAndRemove ();
}
}