我有基于 MVVM 的登录页面,我尝试在正确登录之前调用 this.focus,但问题是我必须单击两次。第一个只是隐藏键盘并给我有关丢失用户名/密码的信息。
因此,问题可能与 mvvm 事物有关,因为当用户首先单击应用程序栏按钮时,字段未更新。
我是 MVVM 的新手,所以我怎样才能专注于使用它的页面?
我有基于 MVVM 的登录页面,我尝试在正确登录之前调用 this.focus,但问题是我必须单击两次。第一个只是隐藏键盘并给我有关丢失用户名/密码的信息。
因此,问题可能与 mvvm 事物有关,因为当用户首先单击应用程序栏按钮时,字段未更新。
我是 MVVM 的新手,所以我怎样才能专注于使用它的页面?
最后,我在没有 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();
}
}