【发布时间】:2009-05-20 15:00:38
【问题描述】:
我刚刚开始使用 M-V-VM 和 WPF,在理解一些绑定问题时遇到了问题。
我有一个包含ComboBox 和PasswordBox 的登录页面。 ComboBox 看起来像这样:
<ComboBox Name="comboBox1" SelectedItem="{Binding Path=Username}">
这很好用 - 每次SelectedItem 在ComboBox 上发生更改时,我的值都会更新!
在我的 ViewModel 中,我有一个 ICommand,它使用此方法来确定登录按钮是否处于活动状态:
public bool CanLogin()
{
return !string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password);
}
所以我的问题是我没有将 PasswordBox 绑定到 ViewModel 上的 Password 属性 - 所以我无法判断它何时更新。
那么如何将PasswordBox 的值传递给我的 ViewModel?我读到的所有内容都只是说出于安全原因不要绑定PasswordBox。我会简单地取消对 CanLogin() 的密码限制,但我需要将值传递给 AccountService。
【问题讨论】:
-
如果您将密码绑定为字符串(而不是 SecureString),您会将密码暴露在进程的内存中。两种给定的解决方案都会危及安全
标签: wpf mvvm binding passwordbox