我的PasswordBox绑定到ViewModel就像
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
.
.
.
<PasswordBox x:Name="pwbox" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="PasswordChanged" >
<i:InvokeCommandAction Command="{Binding PasswordChangedCommand }" CommandParameter="{Binding ElementName=pwbox, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</PasswordBox>
在视图模型中:
public ICommand PasswordChangedCommand { get; private set; }
private string password;
public MyVMClass()
{
PasswordChangedCommand = new RelayCommand<object>(PasswordChangedMethod);
}
private void PasswordChangedMethod(object obj)
{
password = ((System.Windows.Controls.PasswordBox)obj).Password;
}
它可以通过一种方式正常工作,即,如果我在视图内输入密码,则可以从viewmodel中访问它, 我的问题:如何将密码绑定到另一种方式,即如果我通过ViewModel更改密码,我想在视图中查看更改。
答案 0 :(得分:1)
错误的方式。 @sse.before_request
def check_access():
channel = request.args.get("channel") or "sse"
if channel.startswith("private."):
if current_user.is_anonymous:
abort(401)
user_id = channel[8:]
if current_user.get_id() != user_id:
abort(403)
部件是一个例外。
如果要使其具有双向可绑定性,则会破坏安全性概念,因为这意味着RAM密码中的某处将作为PLAIN文本存储,在您的情况下为变量
PasswordBox
直到最后一刻(真实的用户名/密码验证),始终尝试以private string password
的身份传递密码。是的,它打破了((PasswordBox)o).SecurePassword
模式,但这是安全性的代价。