如何使用存储在 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 数据库