WPF Привязка к объектам - PullRequest
       3

WPF Привязка к объектам

2 голосов
/ 12 октября 2010

Я пытаюсь сбросить данные в моем объекте, привязанном к простой форме (некоторые текстовые поля и пара кнопок).

У меня есть 2 объекта, которые были созданы отдельно, но имеют одинаковую информацию. Объект 1 привязан к форме с использованием DataBinding. Объект 2 предназначен для сброса Объекта 1 до первоначальных значений. Всякий раз, когда пользователь редактирует данные, все в порядке, и объект 1 обновляется новыми значениями, а объект 2 остается неизменным. У меня проблема со сценарием, когда пользователь редактирует некоторые данные, а затем нажимает кнопку сброса, которая вызывает код, который выглядит следующим образом:

Object1 = Object2

Значения сбрасываются, но теперь, когда пользователь снова редактирует данные, обновляются значения как Object1, так и Object2. И я больше не могу сбросить.

Как я могу сбросить значения Object1, не делая одновременно возможность обновления Object2? А может кто-нибудь объяснить, почему Object2 после сброса становится способным к обновлению?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Когда вы говорите Object1 = Object2, вы просто указываете Object1 на то место, куда указывает объект 2.Они используют одну и ту же ссылку, и, следовательно, оба обновляются в одно и то же время.

Мое предложение было бы к глубокому клонированию.Я не знаю сложности ваших занятий.Этот код был очень удобен для меня.

http://www.codeproject.com/KB/tips/SerializedObjectCloner.aspx

Поэтому, когда вы сбрасываете Object1, создайте глубоко клонированный объект, передаваемый в Object2, и назначьте его Object1.

1 голос
/ 12 октября 2010

Object2 становится связанным, так как Object1 теперь просто ссылка на Object2.Чтобы избежать этого, попробуйте скопировать только свойства Object2 в Object1 или найти способ клонирования Object2, а затем назначить клон Object1.

...