2011-09-12 3 views
0

コマンドデザインパターンを使用して、DataGridViewの元に戻す機能を追加しています。元に戻す目的で、エディションの前にDataGridViewのセルの値を保存する方法はありますか?

EditCommandを作成するには、セルの以前の値がわかっている必要があります。そのため、ユーザーが元に戻す場合に再入力できます。

私はCellBeginEditイベントとCellEndEditイベントを使用しています。

CellBeginEditでは、セルの値をプライベート変数に保存し、CellEndEdit関数では、保存された値を使用してEditCommandを作成します。

それはうまくいきますが、それを行うためのより健康的な方法があるのだろうかと思います。多分以前のセル値と新しいセル値を保持するイベント。

実際にDataGridViewが自動的に更新されず、EditCommandがそれを行うことができない場合、ボーナスポイントが表示されます。

答えて

0

最近、大きなWPFアプリケーションでUndo/Redoを実装し、Undo/Redoロジックをスタンドアロンのライブラリに抽出できました。これはCodePlexで利用可能です。

ライブラリーは、ユーザーが取り消し/やり直しを選択した場合に再適用できる履歴のスタックを保持するのに役立ちます。これは、あなたのプライベート変数を置き換えることができ、また、元に戻す履歴内の複数の項目を許可することができます。

あなたは、私が申し出に感謝http://muf.codeplex.com/

+0

でのドキュメントとダウンロードを見つけることができますが、私は、コマンドのデザインを使用し続けたいと思います。また、私はすでに元に戻す/やり直しのためのスタックを持っています。問題は、使用するイベントです。 – mee

+0

あなたはBindingGroupを調べましたか?これは、DataGridが値の管理と適用に使用するものです。行レベル(セルレベルではなく)で物事を管理したい場合や、バインディングのコミットに関連する動作を変更したい場合は、BindingGroupを使用するとよいでしょう。 – NathanAW

関連する問題