框架: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);
}
我想要实现的是当用户按下键盘上的Enter键时,程序的行为就像用户点击了OK按钮一样。
问题是验证。
Silverlight的PasswordBox的默认行为是在控件失去焦点时执行验证。我的PasswordBox
绑定到某个User
对象。当我单击Enter按钮时,将调用事件处理程序,然后调用okButtonClick(null, null)
。问题是PasswordBox
当时还没有失去焦点,因此user.Password
绑定的PasswordBox
属性仍为空。
我试图将btnOK.Focus()
放在okButtonClick(null, null)
之前,但无济于事。
如何设置绑定,以便控件在每次文本更改而不是LostFocus
事件上更新绑定?什么是实现我需要的正确方法?
答案 0 :(得分:5)
对PasswordChanged
使用Passwordbox
事件
Textbox
有TextboxChanged
个事件。