WPFのバインディングを使用して元に戻る/やり直しを提供するにはどうすればよいですか?
たとえば、バインディングを使用してマスター/詳細ビューを実装します。編集後、変更はバインディングを使用して自動的に保存されました。次に、変更を元に戻します。
WPFのバインディングですぐに使用できるものはありますか?WPFはいくつかの構造またはインターフェイスを提供しますか?
この質問は、スタックを使用して元に戻る/やり直しを実装する方法に関するものではありません。
IEditableObjectインターフェイスを見てください。これにより、それを実装するオブジェクトのスナップショットを取得し、必要に応じてそのスナップショットにロールバックできます。
MonitoredUndoFrameworkが役立つ場合があります。http://muf.codeplex.com/
「トップダウン」コマンドパターンを使用しませんが、代わりに、変更が発生したときにそれを監視し、変更を元に戻すデリゲートをUNDOスタックに配置できるようにします。
あなたの場合、基礎となるモデル/ビューモデルにバインドしている場合は、フレームワークを接続してこれらの変更をキャプチャし、必要に応じて元に戻す/やり直すことができます。モデルがINotifyPropertyChangedを実装し、ObservableCollectionsを使用する場合、元に戻る/やり直しアクションなど、モデルで実行されたアクションを自動的に反映する必要があります。
詳細とドキュメントは、codeplexサイト(http://muf.codeplex.com/ )にあります。
何にデータバインディングしていますか?
DataSetにデータバインディングしている場合は、DataSet.AcceptChanges()をまだ呼び出していない場合は、DataSet.RejectChanges()メソッドを使用して変更を元に戻すことができます。