首页 > 解决方案 > 以 SQLite 形式更新 Xamarin 中的所有列表

问题描述

我正在使用同一个 SQLite 表的列表视图,并且在添加新项目或更新前一个项目时遇到问题,它会更新当前页面上的值,但需要重新打开应用程序以更新页面 B 上的列表。你有什么解决办法吗? 此处更新更新值之前没有在此处 更新, 所以您可以给我一个链接或视频来帮助我吗?

标签: sqlitexamarin.forms

解决方案


要从列表中添加和删除项目并立即进行更改,您需要使用ObservableCollection. System.Collections.ObjectModel是否使用 SQLite 没有区别;这是关于列表的。

这是一个例子:

public partial class Page : ContentPage
{
    private ObservableCollection<Client> _client;
    public SQLiteAsyncConnection connection;
    
    public Page()
    {
        InitializeComponent();
    }

    protected override async void OnAppearing()
    {
        //initialize database
        await connection.CreateTableAsync<CLient>();
        var listofclient = await connection.Table<Client>().ToListAsync();

        //initialize observablecollection 
        _client = new ObservableCollection<Client>(listofclients);

        //using the list of client as source of listview
        clientListveiw.ItemsSource = _client;
        base.OnAppearing();
    }
    
    //add button
    private async void onadd(object sender, EventArgs e)
    {
        var client = new Client { Name = "jhon"};
        await connection.InsertAsync(patient);
        _client.Add(patient);
    }
}

关于更新,您应该使用INotifyPropertyChange界面;这是一个很长的故事,但你可以谷歌它以获取更多信息。


推荐阅读