Existe-t-il un moyen facile de dire à une liaison de données WPF bidirectionnelle d'attendre quelques millisecondes après la dernière modification avant de mettre à jour la source avec la nouvelle valeur de propriété?Comment reporter une mise à jour vers une liaison dans WPF
J'implémente une fonctionnalité de filtre pour un ListBox où j'ai une zone de texte, et je veux filtrer le contenu de la ListBox en fonction de ce que je tape. J'utilise la liaison de données pour relier les pièces ensemble. Filtrer la liste peut prendre beaucoup de temps, donc je ne veux pas le faire après chaque caractère tapé: d'où ma demande. J'ai utilisé l'extension DelayBinding de Paul Stovell (son site est actuellement fermé, donc je ne peux pas le lier). Cependant, je soupçonne que c'est la cause d'une fuite de mémoire dans mon applicataion (causé par le fait qu'il ne supprime pas les gestionnaires d'événements).
Est-ce que quelqu'un d'autre a d'autres idées?
Tout en confirmant, j'ai connu le même problème avec DelayBinding. J'avais une application shell MVVM qui contenait un StackPanel plein de boutons Menu et un ContentControl principal. ContentControl.Content a été défini par une propriété sur le ViewModel Shell, cependant si j'ai chargé un UserControl qui incluait un DelayBinding et a ensuite basculé le contenu, l'utilisation de la mémoire est passée à travers le toit. Memory Profiler a confirmé que les anciens Content UserControls ont été empêchés d'être collectés par le GC. – LiamV