Вообще, мне нужно в событии Database.ObjectModified исключить обработку объектов, изменяемых в команде Undo. Можно, конечно, добавить обработку события запуска-завершения команды и отключать на это время обработчик Database.ObjectModified. Но мне кажется, что это принципиально не отличается от моего способа. Или чем-то такой подход лучше?