2017-05-26 17 views
0

我正在製作UWP應用程序。我有一個ListView綁定到ObservableCollection。 我想知道何時到達ListView的末尾。一旦到達ListView的末尾,我必須進行API調用以將更多數據添加到列表中。如何實現ListView項目的增量加載?

通過ListView的結束我的意思是用戶已經滾動一路下來,我必須進行api調用,以獲得更多的數據到列表視圖,以便用戶可以進一步滾動。

如何查明用戶何時滾動到最下方?

+0

請修改您的問題,我們看一些代碼,並讓我們知道你有一個很難與代碼的一部分。你認爲什麼是「到達ListView的末尾」?用戶一直向下滾動?或者你的代碼完成填充ListView? –

+0

@ blaze_125添加到問題中。代碼沒有太多,只有一個ListView從ObservableCollection獲取項目。 –

+0

檢查出來開始 - > [處理滾動事件在列表視圖中的C - 銳](https://stackoverflow.com/questions/1851620/handling-scroll-event-on-listview-in -c-sharp)這不是UWP特有的,但它可以幫助你開始。 –

回答

3

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

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; 
} 
0

在UWP社區工具包有一個名爲PullToRefreshListView UWP ListView控件的一個特殊版本,具有功能接近你在找什麼: 當用戶拉下超越RefreshRequested事件被觸發列表的末尾 - 這是您添加新項目的地方。

我建議你去Windows商店下載UWP Community Toolkit Sample App來看看這個控件的演示,並有一個代碼開始的例子。

+0

你應該推薦['Incremental Loading Collection Helpers'](http://www.uwpcommunitytoolkit.com/en/master/helpers/IncrementalLoadingCollection/) –