2016-09-05 17 views
0

これは可能ですか?保存ボタンがクリックされていないと "元に戻す"データバインディングの変更

は私が持っていることは、単にリスト編集ページ

  • 項目のリストを含むページです
  • 最初のページから項目が
  • どこ編集を編集している
  • Editページページにキャンセルと保存ボタンがあります

保存ボタンを押すと、アイテムを保存してナビゲートします項目が更新される前のページに移動します。 ページ間のデータバインディングはうまく動作します。私は必要なもの

私はキャンセルをクリックするか、バック移動すると、私がやったデータバインディング変更を「元に戻す」にあります。私が感じる

私はを働いてきた何しかしは多分あるない私が来る私は最初のページに(OnAppearing)をチェックを移動するための方法、「oldObject」であり、「didClickSaveButton」プロパティ保存ボタンがクリックされなかった場合は元の値に戻ります。

良い方法はありませんか?おそらく、

答えて

0

編集ページ用のViewModelを作成します。ページが読み込まれたら、選択したドメインオブジェクトを使用してVMを作成します。ユーザーが保存を選択した場合は、VMからドメインオブジェクトに変更を保存し直します。ユーザーがキャンセルした場合は、何もしないでください。

+0

はいのための新しいのviewmodelを作成します。作成したxamlページごとに常に新しいViewModelを作成することをお勧めしますか?私はどこのガイドラインも見つけられません... – Sturla

+1

MVVMではこれが理想的なアプローチだと思います – Jason

1

ドメインオブジェクトを複製して、データバインドのビューモデルに渡してください。私は、拙速なアプローチ

public static T Clone<T>(T source) 
     { 
      var serialized = JsonConvert.SerializeObject(source); 
      return JsonConvert.DeserializeObject<T>(serialized); 
     } 

に続き、はい、私はこれが私の問題になる可能性があることを考えていた各ページ

関連する問題