0

我有基于 MVVM 的登录页面,我尝试在正确登录之前调用 this.focus,但问题是我必须单击两次。第一个只是隐藏键盘并给我有关丢失用户名/密码的信息。

因此,问题可能与 mvvm 事物有关,因为当用户首先单击应用程序栏按钮时,字段未更新。

我是 MVVM 的新手,所以我怎样才能专注于使用它的页面?

4

1 回答 1

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();
            }
        }
于 2012-12-03T13:27:01.713 回答