我正在基于Windows WPF应用程序的MVVM Light Toolkit中实现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次航行,我也看不到它。我只看到退出应用程序后调用desctructor。问题是处理旧页面的最佳方法是什么?
答案 0 :(得分:0)
你在做什么应该没事。如果垃圾收集器尚未处理页面,那么还没有必要这样做。如果您担心这些旧页面是否可以是垃圾收集,或者您只是想强制收集发生。尝试使用:
显式调用垃圾收集器GC.Collect();