6
votes

Comment détecter ListView fait défiler vers le haut ou le bas

Y a-t-il un moyen de détecter que scrollviwer de listview est en mode défilement et arrêté le défilement. Dans Windows Phone 8.1 ListView Nous ne pouvons pas faire référence à la vision de ScrollViewer.

Quelqu'un l'a fait dans Windows Phone 8.1 Application WinRT?


3 commentaires

Comme je le pense, vous devriez accepter @yasen réponse - il était plus rapide (3 secondes) et après la modification a beaucoup mieux la méthode de traversant le Visualtree ;)


Merci d'avoir mentionné. J'ai changé la réponse acceptée merci encore :)


@Romasz merci. Votre réponse est bonne aussi, comme toujours. :) seulement un peu moins générique.


3 Réponses :


6
votes

Une fois que la liste ListView est Chargé Vous pouvez obtenir le ScrollViewer Comme ceci: XXX

EDIT < / p>

Comme Romasz suggérait, une fois que vous obtenez le ScrollViewer , vous pouvez utiliser son événement Viewchanganed pour surveiller lors du défilement et quand il s'arrête.

aussi, voici la méthode d'extension générique que j'utilise pour traverser l'arborescence visuelle: xxx

pour obtenir le ScrollViewer Utilisation de ce METHOS , faites ceci: xxx


0 commentaires

4
votes

Vous pouvez trouver le ScrollViewer em> de votre listview em> en utilisant visualtreehelper em>. Par exemple, comme celui-ci: xxx pré>

une fois que vous avez un ScrollViewer em> Vous pouvez vous abonner à ses événements: P>

GetScrollViewer(yourListView).ViewChanged += yourEvent_ViewChanged;


6 commentaires

J'utilise IsupportinCrètentAller la classe étendue pour remplir la vue de la liste, où les éléments sont chargés d'Internet. Comment puis-je obtenir la vision de ScrollViewer dans ce cas, puisque la liste de réception prend du temps pour peupler les articles enfants.


@Mohanrajnk et où est le problème - qu'essayez-vous d'atteindre? Comme je pense que ListView dispose d'une notification de défilement et de chargement incrémental chargons des éléments lorsque cela est nécessaire.


Le problème est comment puis-je obtenir un vision de défilement? J'ai appelé la méthode GescrollViewer à l'intérieur de la méthode ListView chargé. Mais à ce moment-là, la liste n'a pas d'objets enfants. i.e getchildrencount retourne 0.


@Mohanrajnk je n'ai pas joué beaucoup. Dans ce cas, je pense qu'il conviendra mieux de poser une nouvelle question à ce sujet.


Travaillé. Merci. Je devrais rechercher davantage avant de poser une question. Pardon!


@Mohanrajnk Je ne sais pas pourquoi vous avez supprimé la question - c'était une bonne - peut aider quelqu'un à l'avenir.



-1
votes

Vous devez charger des données à ListView avant d'obtenir ScrollView. Si ListView a une ligne vide, puis ScrollezVoir que vous obteniez sera NULL.


0 commentaires