2010-11-18 2 views
2

У меня есть форма данных Silverlight, привязанная к модели. Everthing отлично работает, за исключением случаев, когда я редактирую значение в текстовом поле, не выкладываю или не нажимаю на другой элемент управления, а затем нажимаю кнопку отмены.Silverlight 4 - DataFrom CancelEdit не работает в текстовом поле с фокусом

Событие отмены инициируется должным образом, все свойства устанавливаются заново, за исключением привязки к текстовому полю, содержащему фокус. Значение этого текстового поля будет передано модели.

Предположим, у меня есть текстовое поле с исходным значением 100. Я меняю его на 101, оставьте курсор внутри текстового поля и затем нажмите «Отмена». Я бы ожидал, что значение изменится до 100, как это происходит, когда я перейду в другое текстовое поле, прежде чем нажимать «Отмена», но он остается равным 101.

Как заставить форму данных сбросить значение текущего текстового поля на Отменить событие?

ответ

0

На вашей модели, реализация IEditableObject На MSDN есть example. То, к чему это сводится, относится к обработке IEditableObject.CancelEdit(), которая будет вызываться через DataForm при нажатии кнопки «Отмена». Затем вы просто возвращаете свои данные моделей в любое удобное для вас время.

+0

Интерфейс реализован, и событие обрабатывается, если я впервые выхожу из текстового поля. Проблема, с которой я сталкиваюсь, заключается в том, что когда я оставляю фокус на текстовом поле и нажимаю отменить. – Robert

+0

Обходным способом является передача DboKmsQKundenViewDataForm_TextInputStart и DboKmsQKundenViewDataForm_EditEnded для восстановления исходного значения для этого случая. – Robert