Jea*_*hhe 3 c# passwords wpf mvvm passwordbox
我正在使用PasswordBox,我想检测用户何时输入任何内容,如果是,我需要将按钮状态更改为启用。如何检查用户是否在 中输入了任何内容PasswordBox?
它的行为有所不同,TextBox因为您无法将其绑定到文本,并且当用户键入任何内容时会引发一些事件。任何想法?
我尝试使用下面的代码,但出现错误:
<PasswordBox>
<i:Interaction.Triggers>
<EventTrigger EventName="KeyDown">
<si:InvokeDataCommand Command="{Binding MyCommand}" />
</EventTrigger>
</i:Interaction.Triggers>
</PasswordBox>
Run Code Online (Sandbox Code Playgroud)
您可以使用PasswordChanged密码框中的字符串更改时触发的事件:
XAML 部分:
<PasswordBox Name="pwdBox" PasswordChanged="pwdBox_PasswordChanged" />
<Button Name="someButton" IsEnabled="False" Click="someClickEvent" />
Run Code Online (Sandbox Code Playgroud)
C# 部分:
private void pwdBox_PasswordChanged(object sender, RoutedEventArgs e)
{
somebutton.IsEnabled = String.IsNullOrWhiteSpace(pwdBox.Password));
}
Run Code Online (Sandbox Code Playgroud)
请注意 MSDN 说
当您获取密码属性值时,您将密码以纯文本形式公开在内存中。为了避免这种潜在的安全风险,请使用 SecurePassword 属性以 SecureString 形式获取密码。
因此,以下代码可能是首选:
private void pwdBox_PasswordChanged(object sender, RoutedEventArgs e)
{
btn.IsEnabled = pwdBox.SecurePassword.Length == 0;
}
Run Code Online (Sandbox Code Playgroud)
如果您只能访问 viewModel,那么您可以使用附加属性来创建可绑定密码或安全密码,如此例所示
| 归档时间: |
|
| 查看次数: |
11053 次 |
| 最近记录: |