如何使用存储在 sqlite 数据库中的数据填充我的列表

Posted

技术标签:

【中文标题】如何使用存储在 sqlite 数据库中的数据填充我的列表【英文标题】:How can I populate my list with data being stored in a sqlite database 【发布时间】:2021-06-01 15:43:23 【问题描述】:

我目前正在开发 Xamarin 表单应用程序。这个想法是从 API 获取数据,用户将能够查看食谱、将其添加到收藏夹和搜索。

我在显示我的收藏项目列表时遇到了一点问题。我无法将我的数据查看到我的列表中,不确定我是否正确插入到表中。我会尽可能多地发布相关代码。我会很感激任何帮助:)

在这里我点击添加到收藏按钮 - DBManager.cs

     public void Button_Clicked(System.Object sender, System.EventArgs e)
    

        //add to favoritelist
        dbModel.insertNewToDo(temp);


    

这里是insertNewToDo函数DBManager.cs

private SQLiteAsyncConnection _connection;
    private ObservableCollection<Pancake>temp;
    public DBManager()
    
        _connection = DependencyService.Get<ISQLiteDb>().GetConnection();

    

    public async Task<ObservableCollection<Pancake>> CreateTable()
    
        await _connection.CreateTableAsync<Pancake>();
        //get
        var pancake = await _connection.Table<Pancake>().ToListAsync();
        var allTasks = new ObservableCollection<Pancake>(pancake);
        
        return allTasks;
    

这是最喜欢的页面应该显示煎饼列表,但没有:/ :((( FavePage.xaml.cs

ObservableCollection<Pancake> allPancakes;
public FavePage()

    InitializeComponent();




 





protected async override void OnAppearing()

    
    allPancakes = await dbModel.CreateTable();             
    allFaveTable.ItemsSource = allPancakes;
    base.OnAppearing();


这是 FavePage.xaml

<StackLayout>
    <StackLayout Orientation="Horizontal">
        
        <Button Text="Delete"  />
    </StackLayout>
    <ListView x:Name="allFaveTable">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextCell Text="Binding Name" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>

【问题讨论】:

你确定 'allPancakes' 收藏中有一些物品吗? 你没有发帖insertNewToDo 【参考方案1】:

您似乎没有将 ListView 的 ItemsSource 绑定到可观察集合。将 ObservableCollection 设为包含 StackLayout 的页面的公共属性,并在 ListView 中使用 x:Bind 将 ListView 的 ItemsSource 绑定到 ObservableCollection。

【讨论】:

他不需要绑定集合,因为他已经在OnAppearing中设置了ItemsSource。

以上是关于如何使用存储在 sqlite 数据库中的数据填充我的列表的主要内容,如果未能解决你的问题,请参考以下文章

我想从存储在 sqlite 数据库中的数据中填充可扩展列表视图

如何使用从我的 SQLite 数据库中检索到的数据填充 tkinter 下拉框?

Android:我需要拍照并将其存储在 sqlite 数据库中,然后将其填充到回收站视图中

使用 Core Data 一对多关系从 JSON 数组填充 sqlite 数据库

可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?

如何从 Sqlite ( android ) 中的 datetime 字段获取日期