我正在我的基于 MVVM Light Toolkit 的 Windows WPF 应用程序中实现 INavigation
。这是 NavigateTo 的实现:
private Frame GetFrame()
{
return (Application.Current.MainWindow as Generator.MainWindow).MainFrame; ;
}
public void NavigateTo(string pageKey)
{
CurrentPageKey = pageKey;
var obj = Activator.CreateInstance(_keyPageTypeMapping[pageKey]);
GetFrame()?.Navigate(obj);
}
当我导航到新页面时,会创建并显示新页面。但是,当我离开时,我没有看到旧页面的析构函数已被调用。即使经过 10-20 次导航,我也看不到它。我只看到 descstructor 在我退出应用程序后被调用。问题是处理旧页面的最佳方法是什么?
最佳答案
你在做什么应该没问题。如果垃圾收集器还没有处理掉这些页面,那么就没有必要这样做了。如果您担心这些旧页面是否可以被垃圾收集,或者您是否只想强制进行收集。尝试显式调用垃圾收集器:
GC.Collect();
关于c# - 页面生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36986036/