You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:35:09