我正在制作一个UWP应用程序。我有一个绑定到ObservableCollection的ListView。 我想知道何时到达ListView的末尾。一旦到达ListView的末尾,我就必须进行API调用以向List添加更多数据。
ListView的结尾我的意思是用户已经一直向下滚动,我必须进行api调用以获取更多数据到listview中,以便用户可以进一步滚动。
如何确定用户何时完全滚动?
答案 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以查看此控件的演示,并提供一个代码示例。