Как использовать помощник по нарастающей загрузке UWP Toolkit для добавления новых данных - PullRequest
0 голосов
/ 28 апреля 2018

в примере UWP Toolkit, в сценарии инкрементальной загрузки создается список типа Person с 200 элементами, и при демонстрации помощника создается впечатление, что когда нужно прочитать больше элементов, то дополнительные элементы выбираются из существующего списка :

public async Task<IEnumerable<Person>> GetPagedItemsAsync(int pageIndex, int pageSize)
{
    // Gets items from the collection according to pageIndex and pageSize parameters.
    var result = (from p in _people
                  select p).Skip(pageIndex * pageSize).Take(pageSize);

    // Simulates a longer request...
    await Task.Delay(1000);

    return result;
}

Но как быть, если вы хотите вызвать API, чтобы получить новые элементы и добавить их в список? Что я хотел бы сделать и получить предложение о том, как:

  1. Я начинаю с ListView, который заполняется объектами, которые я заполнил на основе начального вызова веб-API, который возвращает результат JSON. Обычно возвращается только около 25 товаров.
  2. Я хотел бы иметь возможность обнаруживать, когда пользователь прокручивает страницу вниз, что он достиг конца списка и нужно выбрать больше элементов
  3. Затем, когда будет достигнут конец списка, вызовите тот же API и получите следующие 25, а затем добавьте их в ListView

У меня такое ощущение, что это довольно легко сделать, но я не могу понять из примера, как выполнить шаги 2 и 3.

Любые предложения будут великолепны !!

Спасибо, Rick

1 Ответ

0 голосов
/ 30 апреля 2018

Вам нужно изменить метод GetPagesItemsAsync для вызова вашего API и возврата элементов

public async Task<IEnumerable<Person>> GetPagedItemsAsync(int pageIndex, int pageSize)
{
    // Call into your API classes to return a new collection
    var people = await PeopleClient.GetPeople(pageIndex);
    return people;
}

В этом примере PeopleClient будет классом, который использует класс HttpClient для выполнения HTTP-вызова некоторого ресурса и возврата результата в виде объекта Person.

...