Может оказаться полезной среда Monitored Undo Framework. http://muf.codeplex.com/
Он не использует шаблон команды «сверху вниз», но вместо этого следит за изменениями по мере их возникновения и позволяет поместить делегата в стек отмены, который отменит изменение.
В вашем случае, если вы привязываетесь к базовой модели / модели представления, вы можете подключить каркас, чтобы зафиксировать эти изменения, а затем отменить / повторить их по мере необходимости. Если модель реализует INotifyPropertyChanged и использует ObservableCollections, она должна автоматически отражать действия, выполняемые над моделью, включая действия отмены / повторения.
Более подробную информацию и документацию можно найти на сайте codeplex по адресу http://muf.codeplex.com/.
.