我使用SQLite-Net-PCL将数据读写到本地SQLite数据库。在我的应用程序的一个页面上,我需要一个匹配查询的特定表的所有条目。我还需要检索与父模型有关系的子实体。因此,我使用SQLite-Net扩展。在移动设备上获取项目可能需要一些时间。
因为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}" />发布于 2015-10-07 13:13:20
您要寻找的是实现在框架中构建的ISupportIncrementalLoading接口( https://msdn.microsoft.com/library/windows/apps/Hh701916 )。
https://stackoverflow.com/questions/32991901
复制相似问题