我有一个TextBox
绑定到一个具有int
和[Required]
属性的[Range(1,5)]
属性,当应用启动时TextBox
得到0
,如果我按 Backspace 并将其删除为0,则会在调试日志中得到以下消息:
System.Windows.Data Error: 7 : ConvertBack cannot convert value '' (type 'String'). BindingExpression:Path=Order.PartyCode; DataItem='OrderVM' (HashCode=66572856); target element is 'TextBox' (Name=''); target property is 'Text' (type 'String') FormatException:'System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status,TypeCode type)
at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Convert.ChangeType(Object value,Type conversionType,IFormatProvider provider)
at MS.Internal.Data.SystemConvertConverter.ConvertBack(Object o,Type type,Object parameter,CultureInfo culture)
at System.Windows.Data.BindingExpression.ConvertBackHelper(IValueConverter converter,Object value,Type sourceType,CultureInfo culture)'
,验证不起作用。如果我使用Nullable<int>
而不是int
,则会收到相同的错误!
是否必须具有string
属性才能与TextBox
一起使用,还是可以解决此问题?