在定位10240的UWP应用的“辅助视图”中未调用卸载事件

时间:2018-10-25 15:37:57

标签: c# uwp uwp-xaml

在此示例之后,https://docs.microsoft.com/en-us/windows/uwp/design/layout/show-multiple-views如果在辅助视图中打开任何视图,则永远不会调用在辅助窗口中打开的页面的Unloaded事件。因此,由于我在Unloaded事件中有一些清理代码,因此留下了许多未正确处理的对象。

我知道我可以在视图中使用Consolidated事件来了解何时关闭辅助视图(因为在窗口中永远不会调用Closed事件),但是我不能使用它,因为我需要一些自定义按钮在关闭次要视图之前先卸载。我可以打一些脏补丁,但我想避免这种情况。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

但是我不能使用它,因为我有一些自定义按钮需要先关闭,然后再关闭辅助视图。

关闭窗口时,不会触发未加载的事件。我不明白为什么您不能使用Consolidated事件。根据您的描述,您只想在关闭窗口之前进行一些清洁操作。当窗口从最近使用的应用程序列表中删除时,或者用户在其上执行关闭手势时,将发生ApplicationView.Consolidated Event。完全符合您的要求。

您可以查看官方的MultipleViews sample。它实现了ViewLifetimeControl.cs来控制您的辅助视图,并实现了发布事件和相关功能以跟踪辅助视图并在关闭时销毁对象。