Не загруженное событие не вызывается в дополнительном представлении в приложении UWP с таргетингом 10240 - PullRequest
0 голосов
/ 25 октября 2018

Следуя этому примеру, https://docs.microsoft.com/en-us/windows/uwp/design/layout/show-multiple-views Если я открою какое-либо представление во вторичном представлении, событие Unloaded страницы, открытой во вторичном окне, никогда не будет вызвано.Так что есть много объектов, которые остаются без правильной утилизации, так как у меня есть некоторый код очистки в событии Unloaded.

Я знаю, что могу использовать событие Consolidated в представлении, чтобы знать, когда вторичное представление закрыто (потому что событие Closed никогда не вызывается в окне), но я не могу использовать это, поскольку у меня есть несколько пользовательских кнопок, которыенеобходимо закрыть перед закрытием вторичных представлений.Я могу сделать несколько грязных исправлений, но я хочу избежать этого.Есть мысли?

1 Ответ

0 голосов
/ 29 октября 2018

Но я не могу использовать это, поскольку у меня есть несколько пользовательских кнопок, которые необходимо выгрузить перед закрытием вторичных видов.

Событие unloaded не будет запущено при закрытии окна.Я не понимаю, почему вы не можете использовать Консолидированный случай.Согласно вашему описанию, вы просто хотите сделать какую-то чистую операцию до закрытия окна.Событие ApplicationView.Consolidated наступает, когда окно удаляется из списка недавно использованных приложений, или если пользователь выполняет над ним жест закрытия.Он точно соответствует вашим требованиям.

Вы можете проверить официальный образец MultipleViews .Он реализует ViewLifetimeControl.cs для управления вторичными представлениями и реализует события выпуска и соответствующие функции для отслеживания вторичных представлений и уничтожения объектов при закрытии.

...