Как я могу немедленно остановить Silverlight DataForm, сохранив изменения обратно в базовый объект? - PullRequest
1 голос
/ 13 мая 2010

У меня есть мастер-данные Silverlight DataForm, где DataForm представляет адрес улицы.

Когда я редактирую текстовое поле Address1, значение автоматически фиксируется в привязанном объекте Address, как только фокус покидает текстовое поле.

Если я нажму кнопку Cancel, то любые изменения будут отменены, поскольку Address реализует IEditableObject и сохраняет его состояние.

Проблема заключается в том, что, поскольку любое изменение немедленно распространяется на базовый объект, оно будет показано в основной сетке до того, как пользователь действительно нажмет Save. У меня также есть другие места, где эти данные отображаются. Это не очень хороший пользовательский опыт.

Я попробовал OneWay привязку, но потом я не могу выполнить фиксацию без ручного копирования всех полей.

Единственное, что я могу придумать, - это сначала создать копию данных или использовать привязку OneWay, но они оба кажутся немного неуклюжими.

Поддерживает ли DataForm такой способ работы?

1 Ответ

1 голос
/ 13 мая 2010

Копия объекта кажется немного неуклюжей, но я бы использовал это: она возвращается в стиль с такими системами, как ASP.NET MVC.

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

...