Je crée dynamiquement une organigramme dans Silverlight 2 en ajoutant beaucoup de conteneurs Grid à une toile. Chaque conteneur de la grille représente un nœud dans le graphique. Je capturais événements de clic pour les nœuds comme suit:Délégués à l'événement Silverlight
grid.MouseLeftButtonUp += new MouseButtonEventHandler(grid_MouseLeftButtonUp);
De par sa conception, chaque événement de clic change l'apparence de l'arbre, donc sur la capture d'un événement click je reconstruis l'ensemble de l'arborescence org. Cela fonctionne bien pour deux ou trois clics, mais après que tout se bloque lorsque je clique sur un nœud (grille). Chaque fois que je reconstruis l'arbre-je effacer la toile de base en utilisant:
_canvasBase.Children.Clear();
Je me demande si je dois spécifiquement clairement tous les délégués de l'événement avant d'effacer tous les enfants de toile? Ou pourrait-il se produire autre chose pour provoquer le blocage?
Découvrez cet article: [LeakEvent → WeakEvent] (http://blogs.microsoft.co.il/blogs/shimmy/archive/2012/02/01/weak-event-handler-for-silverlight.aspx) – Shimmy