J'ai créé une page de recherche dans une application Windows 8 Style. J'ai implémenté ISupportIncrementalLoading et quand l'utilisateur fait défiler la pagination fonctionne très bien.Effacement ISupportIncrementalLoading
Le problème que j'ai est quand un utilisateur fait une deuxième recherche. Je ne sais apparemment pas comment lancer le LoadMoreItemsAsync. J'ai essayé ce qui suit:
1) Effacez la collection sous-jacente qui est observable et prend en charge ISupportIncrementalLoading. Cela efface tous les éléments de l'écran pour que je sache qu'il est correctement lié.
2) Remplacez complètement l'instance de collection sous-jacente qui implémente ISupportIncrementalLoading et augmente INotifyPropertyChanged pour que la vue sache que la propriété a été modifiée. Cela efface également tous les éléments de l'écran. Toutefois, LoadMoreItemsAsync ne souhaite pas se déclencher après l'effacement ou le remplacement de l'instance de collection sous-jacente. Mon intuition est que l'interface utilisateur ne pense pas qu'elle a besoin de charger plus, mais depuis que j'ai effacé tous les éléments, elle devrait vouloir charger plus.
J'ai vérifié que la propriété HasMoreItems est définie sur true.
Si cela peut aider, malheureusement, vous pouvez voir l'erreur en production si vous téléchargez FlixPicks à partir du Windows 8 Store. Les étapes pour reproduire sont:
- Recherche par contrat fenêtres de recherche
- échange d'avis œuvres de la page de recherche
- Recherche supplémentaire.
- Notez que tous les éléments sont désactivés. (À ce stade, le LoadMoreItemsAsync ne déclenche pas)
Merci pour tout conseil que vous pouvez fournir!
Je viens de créer une repro qui semble fonctionner correctement. C'est très simple, alors quelque chose est probablement perdu là-bas. Pouvez-vous jeter un coup d'oeil et essayer de voir ce qui est différent? https://www.box.com/s/ddr8138khigwe6n78i4b –
Salut Shahar, Merci beaucoup pour l'échantillon. Votre échantillon fonctionne très bien. Je l'ai ajusté un peu pour que ça ne marche plus. J'utilise un GridView au lieu d'une vue de liste et j'ai ajusté la largeur de chaque élément.Si vous voulez bien, pourriez-vous jeter un coup d'œil à la base de code ajustée. Afin de reproduire vous ne faites pas défiler du tout, vous devez être tout le chemin vers la gauche, puis appuyez sur passer ou effacer. Si vous faites défiler vers la droite, cela fonctionne. https://www.box.com/s/9oe4miksi4yeyhat6rwo Merci encore! – Thomas
Résolu - voir la réponse. –