【问题标题】:How can I populate my list with data being stored in a sqlite database如何使用存储在 sqlite 数据库中的数据填充我的列表
【发布时间】: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

标签: c# sqlite listview xamarin


【解决方案1】:

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

【讨论】:

  • 他不需要绑定集合,因为他已经在OnAppearing中设置了ItemsSource。
猜你喜欢
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 2013-09-04
  • 2016-07-23
  • 1970-01-01
  • 2015-07-24
  • 1970-01-01
  • 2017-03-28
相关资源
最近更新 更多