2017-05-12 61 views
0

我想在MasterDetailsView中實現增量加載。我知道我們可以使用ISupportIncremental​Loading來實現增量加載。但有一個問題我沒有立即在ObservableCollection中擁有所有項目。僅當用戶到達MasterDetailsView.ItemTemplate的末尾時纔會添加ObservableCollection中的項目。如何在MasterDetailsView中實現增量加載?

我已經創建了一個函數來加載ObservableCollection中的更多項目,但我只想在用戶到達MasterDetailsView.ItemTemplate的末尾時調用該函數。

那我該怎麼做呢?

+0

也許像分頁增量加載?綁定滾動事件,當它到達該特定項目的末尾時,只需加載另一個。 –

+0

@ m.rogalski如何綁定滾動事件?你能用代碼解釋嗎? –

+0

我還沒有做到這一點,但從我記得MasterDetailsView包含一個ListView作爲每個項目的佔位符。而在ListView中,你應該擁有名爲VerticalOffset的屬性。 –

回答

0

我們可以實現與Incremental Loading Collection

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