1

我正在使用PasswordBoxa Page。由于实施的工作流程,用户可以导航到子页面 ( NavigationWindow),然后返回GoBack()到主页面。

但是这样做时,密码框总是空的!我的工作是防止这种行为,但目前我不知道如何做到这一点。

如果你能帮助我,那就太好了。谢谢

4

2 回答 2

2

这是一个特点。

请参阅:如何绑定到 MVVM 中的 PasswordBox

要启用向后导航,需要存储页面状态。这并不安全。

于 2012-05-28T11:07:31.753 回答
0

我认为他的确切问题不是功能,而是导航服务的错误。

在您背后的代码中,您没有简单的方法来区分导航控件在导航时将您的密码空白或用户通过从框中删除它来空白它。因此,如果您不考虑这一点,如果您导航到另一个页面,您的视图模型中的密码将始终为空。

我使用这个 hack 来确定谁调用了我的密码更改处理程序来更新视图模型:

private void PasswordBox_OnPasswordChanged(object sender, RoutedEventArgs e)
{
    StackTrace stack = new StackTrace();
    StackFrame[] stackframes = stack.GetFrames();
    foreach (StackFrame stackFrame in stackframes)
        if(stackFrame.GetMethod().Name == "Navigate")
            return;
    ViewModelPassword = PasswordBox.SecurePassword;
....

也看看这里:http: //www.wpfsharp.com/2011/04/08/wpf-navigationservice-blanks-passwordbox-password-which-breaks-the-mvvm-passwordhelper/

于 2015-08-11T11:49:47.773 回答