Framework : Silverlight 4
У меня есть простой ChildWindow
с именем пользователя TextBox
и паролем PasswordBox
.Я прикрепил обработчик событий к событию KeyDown
окна.
private void onKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
cancelButtonClick(null, null);
if (e.Key == Key.Enter)
okButtonClick(null, null);
}
Я пытаюсь добиться того, чтобы, когда пользователь нажимал клавишу ввода на клавиатуре, программа работала так, как будто пользовательнажал кнопку ОК.
Проблема заключается в проверке.
Поведение по умолчанию для PasswordBox в Silverlight - проверка, когда элемент управления теряет фокус.Мой PasswordBox
связан с каким-то User
объектом.Когда я нажимаю кнопку Enter, вызывается обработчик события, который, в свою очередь, вызывает okButtonClick(null, null)
.Проблема в том, что PasswordBox
еще не потерял фокус в то время, поэтому свойство user.Password
, к которому привязан PasswordBox
, все еще пусто.
Я пытался разместитьbtnOK.Focus()
до okButtonClick(null, null)
, но безрезультатно.
Как установить привязку, чтобы элемент управления обновлял привязку при каждом изменении текста, а не при событии LostFocus
?Как правильно достичь того, что мне нужно?