質問: かなり初歩的な質問で申し訳ありません。 WPFでMVVMを採用した「OK」と「キャンセル」ボタンを持つダイアログを作成した際、「OK」ボタンはそのままダイアログを 閉じればいいと思いますが、「キャンセル」ボタンはどうすればよいでしょうか? 一般的にはどうされているのでしょうか? コピーしたモデルをバックアップしておいて、キャンセル時にリストア。 もしくはコピーしたものをモデルとして渡し、OKを押された際に更新。というのが基本的な手法でしょうか? ダイアログ用のモデルではなく、アプリケーションがデータ(モデル)を使いまわしている環境を想定しています。 少し大き目のWPFアプリケーションで設定画面を表示したい等です。 ダイアログ用のモデルを別途準備するべきですか? WPF初心者で申し訳ありません。よろしくお願いします。
回答: 通常は、OKボタンで処理の確定、キャンセルボタンで元に戻すだと思いますけど。 OKボタンでは画面操作の結果を反映し、キャンセルボタンでは反映に関しては何もしない。 OKボタンとキャンセルのその後の振る舞いにもよりますが、その画面をリフレッシュするのなら、頭から再度実行する動作ではないでしょうか。 (OKなら反映した状態、キャンセルなら元の状態のでのデータ取得ということになります)