Делегаты событий Silverlight - PullRequest
0 голосов
/ 26 июля 2010

Я динамически строю организационную диаграмму в Silverlight 2, добавляя множество контейнеров Grid на холст. Каждый контейнер сетки представляет узел в диаграмме. Я фиксирую события щелчка для узлов следующим образом:

grid.MouseLeftButtonUp += new MouseButtonEventHandler(grid_MouseLeftButtonUp);

По своему дизайну каждое событие щелчка меняет внешний вид дерева, поэтому при захвате события щелчка я перестраиваю все орг-дерево. Это работает нормально для двух или трех щелчков, но после этого все просто зависает, когда я щелкаю узел (Grid). Каждый раз, когда я перестраиваю дерево, я очищаю базовый холст, используя:

_canvasBase.Children.Clear();

Мне интересно, нужно ли мне специально очистить всех делегатов события перед очисткой всех дочерних элементов холста? Или что-то еще может вызвать зависание?

1 Ответ

1 голос
/ 26 июля 2010

Да, у вас будет сильная утечка памяти, если вы не удалите обработчики событий.

...