sqlite - 以 SQLite 形式更新 Xamarin 中的所有列表
问题描述
我正在使用同一个 SQLite 表的列表视图,并且在添加新项目或更新前一个项目时遇到问题,它会更新当前页面上的值,但需要重新打开应用程序以更新页面 B 上的列表。你有什么解决办法吗?在 此处更新更新值之前没有在此处 更新, 所以您可以给我一个链接或视频来帮助我吗?
解决方案
要从列表中添加和删除项目并立即进行更改,您需要使用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
界面;这是一个很长的故事,但你可以谷歌它以获取更多信息。
推荐阅读
- java - 测试显示文件未找到,尽管文件在那里
- kotlin - 使用带有 spring webflux 的 keycloak 组保护 API 端点
- html - HTML/CSS - HTML 和 Body 比内容更广泛
- facebook - 如何扩展 Facebook 用户访问令牌?
- javascript - 如何在组件中使用第一级和第二级状态来避免无限渲染?
- postgresql - PostgreSQL:单个表的 pg_dump
- html - 如何让我的顶部栏在一行中包含我的所有 div?
- spring - Hibernate 公式不允许在 Getter 中使用任何自定义 Java 代码
- r - R中的阈值标志创建
- apache-kafka - 如何打印 Flink 已开始读取的 Kafka 主题的每个分区的起始偏移量?