.NET MAUI安卓应用报错:Input string was not in a correct format
解决MAUI安卓应用"Input string was not in a correct format"错误
可能的原因及排查步骤
1. 核对数据模型与绑定值的类型匹配
- 确认
UserModel里的UserName属性是字符串类型。如果这个属性是数值类型(比如int、double),但绑定的数据源返回的是无法转换为对应数值的字符串,就会触发该错误。 - 检查后台给
CollectionView设置ItemsSource的代码,确保每条数据的UserName值格式符合属性类型要求。
2. 检查XAML中的格式细节
- 你的Grid行列定义
RowDefinitions="*,auto"和ColumnDefinitions="*,*"是合法的,但如果后续修改过类似带数值的定义(比如误写为RowDefinitions="200x,auto"),会导致格式错误。 - 虽然
FontSize="25"写法合规,但如果是动态绑定FontSize时使用了格式错误的字符串(比如绑定到非数值类型的属性),也可能引发该错误。
3. 排查新增代码中的字符串转换操作
- 重点查看新增代码中涉及字符串转其他类型的部分,比如API返回数据解析、本地数据读取时的类型转换(如字符串转int、DateTime等操作),这类操作最容易出现格式不匹配的问题。
- 通过断点调试定位触发错误的具体代码行,确认哪一步的字符串转换失败。
4. 验证CollectionView的数据源设置
- 确保
CollectionView已正确绑定ItemsSource,如果数据源为null或未初始化,虽不会直接触发该错误,但结合其他数据操作可能间接引发异常。可以先给ItemsSource绑定静态测试列表,排查是否为数据来源问题。
测试用示例代码
如果怀疑是模型或数据源问题,可先尝试静态数据测试:
// 在MainPage构造函数中添加测试数据 public MainPage() { InitializeComponent(); var testUsers = new List<UserModel> { new UserModel { UserName = "TestUser1" }, new UserModel { UserName = "TestUser2" } }; MyCollectionView.ItemsSource = testUsers; }
同时在XAML的CollectionView上添加x:Name="MyCollectionView":
<CollectionView x:Name="MyCollectionView"> <CollectionView.ItemTemplate> <DataTemplate x:DataType="{Type models:UserModel}"> <Label Text="{Binding UserName}"></Label> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView>
如果静态数据能正常运行,说明问题出在实际数据源的解析或转换环节。
内容的提问来源于stack exchange,提问作者MrMohande3
相关产品推荐
相关产品推荐

