Какое событие указывает на то, что элемент управления на основе UserControl уничтожается в WPF? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть панель Grid в моем диалоге, заполненная различными элементами управления. Некоторые из элементов управления унаследованы от класса UserControl, и необходимо выполнить некоторые операции (например, завершение задач, сохранение состояний и т. Д.), Прежде чем элементы управления будут уничтожены.

Какое событие указывает на то, что элемент управления на основе UserControl уничтожается в WPF, например protected override void OnHandleDestroyed(EventArgs e) в WinForms?

1 Ответ

0 голосов
/ 04 июля 2018

A UserControl не "уничтожается" до тех пор, пока не будет в конечном итоге собран мусором.

Событие Unloaded возникает, когда FrameworkElement удаляется из дерева элементов. Обратите внимание, что это событие может запускаться несколько раз для одного и того же элемента в зависимости от вашего макета и способа отображения элементов.

Но «уничтоженного» события не возникает для UserControl. Все управляемые объекты становятся пригодными для сбора мусора, когда на них больше нет ссылок.

Если ваш пользовательский UserControl по какой-то причине должен быть явно "уничтожен", вам следует рассмотреть возможность реализации интерфейса IDisposable и явно уничтожить экземпляры, как только вы их используете. Но WPF не вызовет для вас метод Dispose.

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