如何实现ListView项的增量加载?

时间:2017-05-26 17:33:46

标签: c# xaml uwp

我正在制作一个UWP应用程序。我有一个绑定到ObservableCollection的ListView。 我想知道何时到达ListView的末尾。一旦到达ListView的末尾,我就必须进行API调用以向List添加更多数据。

ListView的结尾我的意思是用户已经一直向下滚动,我必须进行api调用以获取更多数据到listview中,以便用户可以进一步滚动。

如何确定用户何时完全滚动?

2 个答案:

答案 0 :(得分:3)

在UWP社区工具包中使用Incremental Loading Collection Helpers

using Microsoft.Toolkit.Uwp;

public class Person
{
    public string Name { get; set; }
}
public class PeopleSource : IIncrementalSource<Person>
{
    private readonly List<Person> people;

    public async Task<IEnumerable<InfoOverView>> GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
    {
        return AddItems();
    }

    public void AddItems()
    {
        people.Clear();
        //Code to add the additional items in the people List
        return people;
    }
}

//In Page.xaml.cs
public Page()
{
    this.InitializeComponent();
    var collection = new IncrementalLoadingCollection<PeopleSource, Person>();
    MasterDetailsViewPanel.ItemsSource = collection;
}

答案 1 :(得分:0)

在UWP社区工具包中,有一个名为PullToRefreshListView的UWP ListView控件的特殊版本,其功能与您正在寻找的功能相近: 当用户下拉超出列表末尾时,会触发* aws_emr_cluster.emr-cluster: bootstrap_action.0: expected object, got invalid * aws_emr_cluster.emr-cluster: bootstrap_action.1: expected object, got invalid 事件 - 这是您添加新项目的位置。

我建议您访问Windows应用商店并下载UWP Community Toolkit Sample App以查看此控件的演示,并提供一个代码示例。