我有基于MVVM的登录页面,我尝试在正确登录之前调用this.focus,但问题是我必须单击两次。第一个只是隐藏键盘并给我关于丢失用户名/密码的信息。
因此,当用户首先单击应用程序栏按钮时,字段不会更新,因此问题可能与mvvm有关。
我是MVVM的新手,所以如何专注于使用它的页面?
答案 0 :(得分:0)
最后,我没有MVVM就做到了。我的应用栏按钮处理程序如下。
void Set_Details_MenuItem_Click(object sender, EventArgs e)
{
object focusObj = FocusManager.GetFocusedElement();
if (focusObj != null && (focusObj is PasswordBox || focusObj is TextBox))
{
if (focusObj is PasswordBox)
{
var binding = (focusObj as PasswordBox).GetBindingExpression(PasswordBox.PasswordProperty);
binding.UpdateSource();
viewModel.Login();
}
else if (focusObj is TextBox)
{
var binding2 = (focusObj as TextBox).GetBindingExpression(TextBox.TextProperty);
binding2.UpdateSource();
viewModel.Login();
}
}
else
{
viewModel.Login();
}
}