2011-11-22 4 views
0

フォームの元の値を保存する際に問題が発生しています。Silverlight MVVMを使用してフォームの元の値を保存する

私はテキストボックスの数を持つフォームを持っています。これらのテキストボックスは単一のエンティティとバインドします。

Class Car 
{ 
    private int Light; 
    private int TailLight; 
    private int Seats; 
    private int Gears; 

} 

ここで、1つのテキストボックスはLightでバインドされ、1つはTailLightなどでバインドされます。

これらのテキストボックスにはいくつかの値が入力されており、ユーザーはこれらのテキストボックスを編集してデータを保存することができます。これらのデータを保存する前に、編集した値でOriginalValues(pageload上)をチェックする必要があります。私はこれらの元の値をどこにでも保存する方法を見つけることができません。元の値をどこに保存しても、最後に編集された値にデータが変更されますが、私たちが参照しているからです。

誰もがこの問題を解決する方法を提案することができます......

答えて

1

試行錯誤を繰り返しても、これを行う方法を見つけられませんでした。

だから私は

// Deep clone  
     public static T DeepCopy<T>(this T a) 
     { 
      using (MemoryStream stream = new MemoryStream()) 
      { 
       DataContractSerializer formatter = new DataContractSerializer(typeof(T)); 
       formatter.WriteObject(stream, a); 
       stream.Position = 0; 
       return (T)formatter.ReadObject(stream); 

      } 
     } 

・ホープこのヘルプ他の人が

.. DeepCopy、すなわちSeralizingとDeseralizingを使用することにより、TE同じことをやりました
1

あなたはMVVMを使用している場合はその答えは非常に簡単です:一時的な値ユーザーインターフェイスは、あなたのビューモデルで元の値が存在を編集することができますあなたのモデルにとどまります。ユーザーが変更を保存すると、ビューモデルの現在の値がモデルに転送されます。

関連する問題