SQLite-Net 部分填充 ListView
SQLite-Net populate ListView partially
我正在使用 SQLite-Net-PCL to read and write data to a local SQLite
database. On one page of my app I need all entries from a specific table that match a query. I also need to retrieve the child entities with relationships to the parent model. Therefore I use SQLite-Net Extensions。在移动设备上获取项目可能需要一些时间。
由于 ListView
无法显示所有条目 - 我想加载即前 100 个条目,而不是用户滚动 ListView
.
时的所有其余条目
我写了一个DatabaseHelper
,里面提供了下面的方法:
public async static Task<ObservableCollection<Item>> GetItemsByQueryAsync(string query)
{
List<Item> models = null;
var conn = new SQLiteAsyncConnection(() => getAsyncSQLiteConnection());
models = await conn.GetAllWithChildrenAsync<Item>(i => i.name.Contains(query));
return new ObservableCollection<Item>(models);
}
我从我的 ViewModel
调用此方法为 ListView
创建 ItemsSource
:
public ObservableCollection<Item> Items
private async void GetItems()
{
Items = await DatabaseHelper.GetItemsByQueryAsync(SearchQuery);
}
这是 ListView
的 XAML 代码(我删除了模板代码)
<ListView x:Name="Items_ListView" ItemsSource="{Binding Items}" />
您正在寻找的是实现框架中构建的 ISupportIncrementalLoading
接口 ( https://msdn.microsoft.com/library/windows/apps/Hh701916 )
一个很好的例子可以在这里找到:
https://marcominerva.wordpress.com/2013/05/22/implementing-the-isupportincrementalloading-interface-in-a-window-store-app/
我正在使用 SQLite-Net-PCL to read and write data to a local SQLite
database. On one page of my app I need all entries from a specific table that match a query. I also need to retrieve the child entities with relationships to the parent model. Therefore I use SQLite-Net Extensions。在移动设备上获取项目可能需要一些时间。
由于 ListView
无法显示所有条目 - 我想加载即前 100 个条目,而不是用户滚动 ListView
.
我写了一个DatabaseHelper
,里面提供了下面的方法:
public async static Task<ObservableCollection<Item>> GetItemsByQueryAsync(string query)
{
List<Item> models = null;
var conn = new SQLiteAsyncConnection(() => getAsyncSQLiteConnection());
models = await conn.GetAllWithChildrenAsync<Item>(i => i.name.Contains(query));
return new ObservableCollection<Item>(models);
}
我从我的 ViewModel
调用此方法为 ListView
创建 ItemsSource
:
public ObservableCollection<Item> Items
private async void GetItems()
{
Items = await DatabaseHelper.GetItemsByQueryAsync(SearchQuery);
}
这是 ListView
的 XAML 代码(我删除了模板代码)
<ListView x:Name="Items_ListView" ItemsSource="{Binding Items}" />
您正在寻找的是实现框架中构建的 ISupportIncrementalLoading
接口 ( https://msdn.microsoft.com/library/windows/apps/Hh701916 )
一个很好的例子可以在这里找到: https://marcominerva.wordpress.com/2013/05/22/implementing-the-isupportincrementalloading-interface-in-a-window-store-app/