Подтвердить что ты не робот

Обновление привязки Force Silverlight Silverlight

Как я могу принудительно привязать мои объекты привязки DataContext? Я использую событие в сетке, и обновления привязки не обрабатываются до моего события.

Какие-нибудь дешевые трюки, чтобы обойти это? В конце концов, я всегда могу сделать что-то старое руководство для получения значений из моих текстовых полей и обновления моего объекта, но было бы неплохо иметь привязку для этого.

UPDATE

Моя сетка содержит два текстовых поля. Если пользователь нажимает на сетку (событие MouseButtonUp), я сохраняю изменения. Но в моем обработчике событий MouseButtonUp, datacontext еще не обновлен. Я бы это себе представлял, потому что текстовое поле обновляется только тогда, когда фокус теряется.

4b9b3361

Ответ 1

Вы можете принудительно обновить источник привязкой, вызвав метод UpdateSource() на привязке. Попробуйте добавить его в обработчик событий MouseButtonUp непосредственно перед сохранением.

Так же:

BindingExpression binding = FirstTextBox.GetBindingExpression(TextBox.TextProperty)
if (null != binding) binding.UpdateSource();

Дополнительную информацию об этом вы можете найти в MSDN: http://msdn.microsoft.com/en-us/library/system.windows.data.bindingexpression.updatesource(VS.95).aspx

Ответ 2

Альтернативно вы можете поймать событие TextInput (оно срабатывает при нажатии пользователем внутри текстового поля) а затем смените фокус на второй текстовый блок. потеря фокуса обновит привязанное значение.