If you add a part of a object or anything
that will generate an adorner on that object
the undo functionality will not remove the
adorner when the action is reversed.

You can not do the removal in the overriden
Arrange method since it will cause the child
collection on the parent element to throw
an exception.

In this solution you throw an
ObjectDeletedException, and that will add the
object for deletion after the iteration is
finished.