2013-02-08 100 views
0

ComboBoxNotEmptyValidationRule类使用Int32.Parse后后的错误,我得到一个错误:WPF - 使用Int32.Parse

Input string was not in a correct format. 

当我添加到XAML:

<local:ComboBoxNotEmptyValidationRule x:Name="Number" ValidatesOnTargetUpdated="True"/> 

计划是normaly运行,这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

你能显示更多的代码吗?我们不知道“ComboBoxNotEmptyValidationRule”是什么,等等。 – 2013-02-08 18:34:28

+0

@ Jeff-Meadows我添加了这个类。 – user1031034 2013-02-08 18:46:49

+0

你确定值是字符串类型吗?价值的内容是什么? – LPL 2013-02-08 19:02:18

回答

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"); 
     } 
    } 
} 
+0

捕获格式异常解决问题。谢谢 ;) – user1031034 2013-02-08 19:16:36