在Int32.Parse
课程中使用ComboBoxNotEmptyValidationRule
后,我收到错误消息:
Input string was not in a correct format.
当我添加到XAML时:
<local:ComboBoxNotEmptyValidationRule x:Name="Number" ValidatesOnTargetUpdated="True"/>
程序正常运行,这个walidation正常运行。在设计窗口中,我没有任何内容,只有FormatException: Input string was not in a correct format.
消息。当我在XAML中评论这一行时,一切都很好。
class ComboBoxNotEmptyValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
int str = -1;
str = Int32.Parse(value as string);
if (str > 0)
{
if (str > 0)
return ValidationResult.ValidResult;
}
return new ValidationResult(false, "please fill required field");
}
}
答案 0 :(得分:0)
您可以使用int32.TryParse
class ComboBoxNotEmptyValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
int str;
if (Int32.TryParse(value as string, out str))
{
if (str > 0)
return ValidationResult.ValidResult;
}
return new ValidationResult(false, "please fill required field");
}
}
或者,您可以捕获FormatException
并返回错误的验证结果。
class ComboBoxNotEmptyValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
int str = -1;
try
{
str = Int32.Parse(value as string);
if (str > 0)
{
if (str > 0)
return ValidationResult.ValidResult;
}
return new ValidationResult(false, "please fill required field");
}
catch (FormatException)
{
return new ValidationResult(false, "please fill required field");
}
}
}