我知道您不能PasswordBox.Password
在 WPF 中绑定到。如何处理包含一个表单?表单上的所有其他控件都绑定到业务对象的属性,但是每当输入更改时,我必须手动设置和检索密码属性。
我知道其他人已经创建了允许绑定到此属性的自定义控件,但另一方面,Microsoft 明确禁止绑定到此属性是有原因的。
这个问题是否有任何优雅的解决方案,或者我是否坚持编写代码来弥合我的表单和我的业务对象之间的差距?
我知道您不能PasswordBox.Password
在 WPF 中绑定到。如何处理包含一个表单?表单上的所有其他控件都绑定到业务对象的属性,但是每当输入更改时,我必须手动设置和检索密码属性。
我知道其他人已经创建了允许绑定到此属性的自定义控件,但另一方面,Microsoft 明确禁止绑定到此属性是有原因的。
这个问题是否有任何优雅的解决方案,或者我是否坚持编写代码来弥合我的表单和我的业务对象之间的差距?
这也是重复的,在那里你可以找到另外两种方法:一种(在问题中)在 ViewModel 上具有 PasswordBox 公共属性(我不喜欢这种方法),另一种(在接受的答案中)具有事件处理程序以及 ViewModel 上的 SecureString 属性。这有点“传统”,但我更喜欢这种方法,而不是编写多行代码来将密码与附加属性绑定。希望这可以帮助。
只需绑定到 PasswordBox 本身,即{Binding ElementName=MyPasswordBox}
.