Выяснить, когда пользовательский элемент управления Silverlight находится - PullRequest
1 голос
/ 06 декабря 2010

Как узнать, удаляется ли мой пользовательский элемент управления silverlight / уничтожается?

Обычно я могу использовать деструктор, но я столкнулся с ситуацией, когда в элементе управления telerik возникает утечка памяти.Это предотвращает вызов деструктора.

Существует событие элемента управления, называемое «Unloaded», но мой элемент управления находится на вкладке.При изменении вкладки происходит событие «Unloaded».

У меня есть обходной путь для утечки памяти, но мне нужно уловить тот факт, что элемент управления находится в процессе уничтожения, и выполнить мою «работу»вокруг ».

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 06 декабря 2010

Я не знаю деталей вашего проекта, но, возможно, вы можете обработать Unloaded событие из вкладки.В этом случае вы можете быть уверены, что вкладка во всех дочерних элементах управления выгружена из текущего дерева объектов.Также вы можете обрабатывать Application.Exit , если вы запускаете свой код в процессе вне браузера, вы можете использовать событие Window.Closing (доступно в Silverlight 4 или более поздней версии).

1 голос
/ 23 февраля 2011

Вопрос в том, действительно ли вам нужно знать, когда UserControl уничтожен или утилизирован?Если вы создаете и разрушаете свой элемент управления (обработчики событий, дочерние элементы и т. Д.) В событиях Loaded и Unloaded, то вы сможете правильно обрабатывать, когда элементы управления становятся невидимыми (отключаются от визуального дерева), а также когда элемент управленияудаляется навсегда.Мы использовали этот подход в нашем последнем приложении Silverlight 4, которое позволяет вам проектировать организации;все от организационных возможностей до необходимого оборудования.Приложение имеет много просмотров, поэтому нам нужно было убедиться, что все было правильно отсоединено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...