Une des causes les plus fréquentes des lenteurs du scrolling clavier dans une liste est le coût de la récupération des données liées à l’item sélectionné. Lorsqu’un utilisateur maintient les flèches de son clavier appuyées pour effectuer un défilement, l’élément sélectionné change très rapidement, déclenchant de nombreux et couteux appels à la source de données tels des web services ou une base.
L’idée du limiteur vient du fait que les données n’ont pas à être affichées plus rapidement que l’utilisateur ne peut les lire. On considère alors que le choix de l’utilisateur est valide après un certain temps d’inactivité (généralement court). Le projet attaché démontre cette technique appliquée à une commande dans la classe ThrottleHelper.
Les trois paramètres sont respectivements : le delegué d’exécution de la commande, le délai du limiteur, et l’action effectuée si un appel est fait avant que le délai ne se soit écoulé (en général une ré-initialisation visuelle).
Le projet attaché utilise une version simplifiée du DelegateCommand de Prism, et démontre ce pattern en Silverlight 4 et WPF 4.
Remarques
Encore une fois merci à Joao pour m’avoir motiver à poster