Я использую SQLite-Net-PCL для чтения и записи данных в локальную базу данных SQLite
. На одной странице моего приложения мне нужны все записи из конкретной таблицы, соответствующие запросу. Мне также нужно получить дочерние сущности с отношениями к родительской модели. Поэтому я использую SQLite-Net Extensions. Получение элементов на мобильном устройстве может занять некоторое время.SQLite-Net заполнить ListView частично
Поскольку 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
создать ItemsSource
для ListView
:
public ObservableCollection<Item> Items
private async void GetItems()
{
Items = await DatabaseHelper.GetItemsByQueryAsync(SearchQuery);
}
Это XAML код для ListView
(я удалил код шаблона)
<ListView x:Name="Items_ListView" ItemsSource="{Binding Items}" />
последовали примеру! Работайте отлично - Спасибо – nor0x