Сохранение оригинальных значений формы с использованием Silverlight MVVM - PullRequest
0 голосов
/ 22 ноября 2011

У меня проблема с сохранением исходных значений формы.

У меня есть форма с количеством текстовых блоков. Все эти текстовые поля связываются с одной сущностью. Например,

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

} 

Теперь одно текстовое поле будет привязано к Light, одно к TailLight и т. Д.

При загрузке страницы эти текстовые поля заполняются некоторыми значениями, и пользователь имеет возможность редактировать эти текстовые поля и сохранять данные. Теперь перед сохранением этих данных мне нужно проверить OriginalValues ​​(при загрузке страницы) с отредактированными значениями. Я не могу найти способ хранить эти оригинальные значения в любом месте. Независимо от того, где я сохраняю исходные значения, данные в конце изменяются на отредактированное значение, я понимаю, что это потому, что мы даем ссылку.

Может кто-нибудь предложить способ решить эту проблему ......

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Даже после множества проб и ошибок я не мог найти способ сделать это.

Так что я сделал то же самое, используя DeepCopy, то есть Seralizing and Deseralizing ..

 // 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);

            }
        }

Надеюсь, что это поможет другим ..

1 голос
/ 22 ноября 2011

Когда вы используете MVVM, ответ довольно прост: временное значение, которое пользовательский интерфейс может редактировать, находится в вашей модели представления, исходное значение остается в вашей модели.Когда пользователь сохраняет изменения, текущие значения в вашей модели представления переносятся в вашу модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...