protected override void OnCancel() { // should be in EditableObjectHelper... foreach (var b in blocksBeforeEdit) { if (!spec.IcdBlocks.Contains(b)) { spec.AddBlock(b); } } foreach (var b in spec.IcdBlocks) { if (!blocksBeforeEdit.Contains(b)) { spec.RemoveBlock(b); } } (spec as IEditableObject).CancelEdit(); }