HowtoBindaXamarin.FormsEntrytoaNon-StringType,例如Decimal:vardownPayment=newEntry(){Horizo??ntalOptions=LayoutOptions.FillAndExpand,Placeholder="DownPayment",Keyboard=Keyboard.Numeric};downPayment.SetBinding(Entry.TextProperty,"DownPayment");当我尝试在模拟器上输入Entry时,出现以下错误。对象类型System.String无法转换为目标类型:System.Decimal在撰写本文时,绑定时没有内置转换(但这有效),因此绑定系统不知道如何转换您的DownPayment字段(十进制)到Entry.Text(一个字符串))。如果OneWay绑定是您所期望的,字符串转换器将完成这项工作。这适用于标签:downPayment.SetBinding(Entry.TextProperty,newBinding("DownPayment",stringFormat:"{0}"));对于Entry,您希望绑定在两个方向上都有效,因此您需要一个转换器:十进制)返回值.ToString();返回值;}publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){decimaldec;if(decimal.TryParse(valueasstring,outdec))returndec;返回值;现在您可以使用此转换器的一个实例:downPayment.SetBinding(Entry.TextProperty,newBinding("DownPayment",converter:newDecimalConverter()));注意:OP的代码应该在1.2.1及更高版本中开箱即用(来自Stephane对问题的评论)。对于1.2.1以下的版本,这是一种解决方法。以上就是C#学习教程:HowtobindXamarin.Formsentrytonon-stringtypes,如Decimal分享的全部内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多付出多多关注吧~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
