我已经阅读了几篇关于如何使用附加属性在WPF中绑定PasswordBox值的文章。然而,每篇文章都引用了.NET文档,解释了为什么PasswordBox一开始就没有被设计成可绑定的。
我并不认为自己是安全专家,但我想微软的某个人知道他们在做什么,我不应该花费精力试图撤销它。
因此,我想出了自己的解决方案。
然后,在我的XAML中,我只需将Password字段绑定到
我并不认为自己是安全专家,但我想微软的某个人知道他们在做什么,我不应该花费精力试图撤销它。
因此,我想出了自己的解决方案。
public class LoginViewModel
{
// other properties here
public PasswordBox Password
{
get { return m_passwordBox; }
}
// Executed when the Login button is clicked.
private void LoginExecute()
{
var password = Password.SecurePassword;
// do more stuff...
}
}
然后,在我的XAML中,我只需将Password字段绑定到
ContentPresenter
,就可以渲染出PasswordBox。那么我的问题是...这样做有问题吗?我意识到我在某种程度上打破了MVVM的规则,因为我让实际控件出现在我的ViewModel中,但至少这似乎比仅仅取消密码字段的保护更正确。如果这实际上是一个问题,是否有人想出了一种解决方案,而不涉及使用附加属性并将密码存储在ViewModel中?谢谢!-J