Bonjour,
Pour le projet que je développe actuellement, j'ai du concevoir un contrôle personnalisé pour la visualisation de nos documents. Tout fonctionne très bien à ce niveau-là.
Cependant, pour avoir une interface plus pratique, je m'appuie sur AvalonDock. En debug, j'ai remarqué une fuite mémoire importante : en effet, à chaque fois que l'utilisateur change de document (via des TabItem), les UserControl sont intégralement recréés.
Y a-t-il une raison pour qu'un composant personnalisé soit détruit lorsqu'il perd le focus (ou quand son parent le perd), puis recréer lorsqu'il le reprends ? Cela me semble tordu, et très honnêtement, je pense que le problème vient d'AvalonDock, mais je préfère en être sûr avant de rapporter un éventuel bug.
EDIT Après quelques recherches, je commence à comprendre un peu plus le problème, qui est propre à WPF. Le soucis vient du fait que le TabControl semble détruire le Visual Tree des TabItems n'étant pas sélectionnés. Je cherche donc maintenant comment forcer le TabControl à ne pas toucher au contenu des TabItems non sélectionnés.
Partager