ネストされたプロパティと ObservableCollection を含むビュー モデルの UndoRedo コンテナーを実装する途中です。私はアプリケーションで例外処理に PostSharp を使用しており、記事に記載されているように元に戻すエンジンを実装するためにそれを再利用することを考えました: http://www.postsharp.net/aspects/examples/undoredo
上記の記事はバインド制限のあるwindowsForms向けですが、リッチバインディングのwpfプラットフォームを採用するようにエンジンを作成し、単一のプロパティに対してうまく機能しています。
ネストされたプロパティとコレクションを処理するために UndoableAttribute を拡張する方法を考えています。私の試みとグーグルのスキルは、今まで無駄であることが証明されています. 任意のアイデア、またはいくつかの記事へのポインタをいただければ幸いです。