C# 验证WPF:PasswordBox为NullOrEmpty
我需要检查字段中输入的数据是否正确。对于C# 验证WPF:PasswordBox为NullOrEmpty,c#,wpf,validation,passwords,C#,Wpf,Validation,Passwords,我需要检查字段中输入的数据是否正确。对于TextBox,很容易: XML代码 <Window.Resources> <ControlTemplate x:Key="validationTemplate"> <DockPanel> <TextBlock Foreground="Red" FontSize="20">!</TextBlock>
TextBox
,很容易:
XML代码
<Window.Resources>
<ControlTemplate x:Key="validationTemplate">
<DockPanel>
<TextBlock Foreground="Red" FontSize="20">!</TextBlock>
<AdornedElementPlaceholder/>
</DockPanel>
</ControlTemplate>
<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<TextBox x:Name="loginTextBox" Validation.ErrorTemplate="{StaticResource validationTemplate}" Style="{StaticResource textBoxInError}"
HorizontalAlignment="Left" Height="23" Margin="135,0,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="250">
<TextBox.Text>
<Binding Path="Login" >
<Binding.ValidationRules>
<local:ValidationRuleModel />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
但是如何为密码箱
实现这一点呢。由于安全原因和
<PasswordBox.Password>
<Binding Path="Password" >
<Binding.ValidationRules>
<local:ValidationRuleModel />
</Binding.ValidationRules>
</Binding>
</PasswordBox.Password>
做不到。我试图使用和的提示,但什么也没发生
那么,如何检查用户是否在字段密码框中输入了数据?您可以使用:
谢谢你的回答。这有帮助。也许,您可以告诉我在这种情况下必须为字段密码箱设置什么类型的属性:PasswordBox.GetBindingExpression(PasswordBox.*property**).UpdateSource()
例如,对于TexBox
I,使用TextBoxProperty
loginTextBox.GetBindingExpression(TextBox.TextProperty).UpdateSource()代码>如果您有其他问题,请提出新问题。请不要在“评论”字段中询问其他问题。
<PasswordBox.Password>
<Binding Path="Password" >
<Binding.ValidationRules>
<local:ValidationRuleModel />
</Binding.ValidationRules>
</Binding>
</PasswordBox.Password>
<PasswordBox local:PasswordBoxAssistant.BindPassword="True">
<local:PasswordBoxAssistant.BoundPassword>
<Binding Path="Password" Mode="TwoWay">
<Binding.ValidationRules>
<local:ValidationRuleModel />
</Binding.ValidationRules>
</Binding>
</local:PasswordBoxAssistant.BoundPassword>
</PasswordBox>