在我的 WPF 应用程序中,我为我的 TextBoxes 创建了 ValidationRules,这样它就不会允许一个空字符串,它可以正常工作并显示一个带有文本的红色边框,告诉用户它不能为空。当应用程序启动时,所有字段都是空白等待输入,但我仍然看到它们周围的红色边框。这是正常行为吗?注意:我希望它在用户使用表单时触发 propertychange 事件或 lostfocus 事件后触发,而不是在表单最初加载时触发。
我正在做的验证示例:
<TextBox x:Name="itemNum" HorizontalAlignment="Left" Height="23" Margin="82,58,0,0" VerticalAlignment="Top" Width="90"
HorizontalContentAlignment="Left" VerticalContentAlignment="Center" PreviewKeyDown="ItemNum_PreviewKeyDown"
PreviewTextInput="ItemNum_PreviewTextInput" TabIndex="0" Validation.ErrorTemplate="{StaticResource validationErrorTemplate}">
<TextBox.Text>
<Binding Path="rxID" Mode="TwoWay" StringFormat="{}{0:#}" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<MY:TextBoxNotEmptyValidationRule x:Name="rxIDValidation" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
我的 TextBoxNotEmptyValidationRule 类:
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
string str = value as string;
if (string.IsNullOrEmpty(str))
{
return new ValidationResult(false, "Value CAN NOT BE empty");
}
return ValidationResult.ValidResult;
}