public override void EditItem (object item)
{
// We can't edit an item which hasn't been comitted.
if (IsAddingNew && item == CurrentAddItem)
return;
if (IsAddingNew)
CommitNew ();
if (IsEditingItem)
CommitEdit ();
CurrentEditItem = item;
IsEditingItem = true;
if (item is IEditableObject) {
CanCancelEdit = true;
((IEditableObject) item).BeginEdit ();
}
UpdateCanAddNewAndRemove ();
}