我在Windows 8樣式應用程序中創建了一個搜索頁面。我已經實現了ISupportIncrementalLoading,並且當用戶滾動分頁時效果很好。清除ISupportIncrementalLoading
我遇到的問題是用戶進行第二次搜索時。我顯然不知道如何讓LoadMoreItemsAsync再次觸發。我試過以下內容:
1)清除Observable的底層集合並支持ISupportIncrementalLoading。這將清除屏幕上的所有項目,因此我知道它是正確綁定的。
2)完全替換實現ISupportIncrementalLoading的底層集合實例,並引發INotifyPropertyChanged,以便視圖知道屬性已更改。這也清除了屏幕上的所有項目。
但是,LoadMoreItemsAsync不希望在清除或替換底層集合實例後觸發。我的直覺是,用戶界面不認爲它需要再加載,但因爲我已經清除了所有應該加載的項目。
我已驗證HasMoreItems屬性設置爲true。
如果可以幫忙,遺憾的是,如果您從Windows 8商店下載FlixPicks,則可以看到生產中的錯誤。複製的步驟是:使用Windows
- 搜索搜索合同
- 通知尋呼作品從搜索頁面再次
- 搜索。
- 注意清除所有項目。 (此時LoadMoreItemsAsync未觸發)
感謝您提供任何建議!
我剛剛創建了一個似乎很好地工作的repro。這很簡單,所以可能有些東西在那裏丟失。你能看一看,看看有什麼不同嗎? https://www.box.com/s/ddr8138khigwe6n78i4b –
沙哈爾您好,感謝這麼多的樣品。你的樣品工作得很好。我已經調整了一下,這樣它就不再工作了。我使用GridView而不是列表視圖,並調整了每個項目的寬度。如果你會這麼友善,你可以看看調整後的代碼庫。爲了複製,你不必滾動,你必須一路向左,然後按開關或清除。如果你向右滾動它的工作。 https://www.box.com/s/9oe4miksi4yeyhat6rwo再次感謝! – Thomas
已解決 - 請參閱答案。 –