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

页面初始化时异步加载数据库对象列表的正确实现方式

在页面打开时异步加载SQLite数据的正确方式

不要在构造函数中执行异步操作(因为构造函数无法标记为async,强行使用await会导致页面初始化不完整),你可以利用页面的生命周期方法OnAppearing来实现页面打开时自动加载数据,具体步骤如下:

  1. 抽离异步数据加载逻辑为单独方法
    把数据加载的代码封装成一个异步方法,方便复用和异常处理:

    private async Task LoadAnimalsAsync()
    {
        statusMessage.Text = "";
        try
        {
            List<Animal> animals = await App.animalServ.GetAllAnimals();
            animalList.ItemsSource = animals;
        }
        catch (Exception ex)
        {
            statusMessage.Text = $"加载数据失败: {ex.Message}";
        }
    }
    
  2. 重写页面的OnAppearing方法
    OnAppearing是页面即将显示时触发的生命周期钩子,你可以在这里异步调用上面的加载方法:

    protected override async void OnAppearing()
    {
        base.OnAppearing();
        await LoadAnimalsAsync();
    }
    

这样页面打开时,就会自动触发数据加载,完成后将数据绑定到CollectionView上,同时通过异常处理避免因数据库问题导致页面崩溃。

内容的提问来源于stack exchange,提问作者mishi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:10:27