首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双向绑定到PasswordBox

双向绑定到PasswordBox
EN

Stack Overflow用户
提问于 2019-02-03 20:42:46
回答 1查看 699关注 0票数 0

我的PasswordBox绑定到ViewModel的方式如下:

代码语言:javascript
复制
 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>

在视图模型中:

代码语言:javascript
复制
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更改它,我希望看到视图中的更改。

EN

回答 1

Stack Overflow用户

发布于 2019-02-03 21:28:23

走错路了。PasswordBox组件是一个例外。

如果您打算让它成为双向可绑定,那么您就破坏了安全概念,因为这意味着在RAM中的某个地方,密码将以纯文本的形式存储,在您的例子中,密码将以变量的形式存储

代码语言:javascript
复制
private string password

直到最后一刻(真实用户名/密码验证),始终尝试将密码作为((PasswordBox)o).SecurePassword传递。是的,它打破了MVVM模式,但这是安全成本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54502958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档