页面生命周期

时间:2016-05-02 15:24:09

标签: c# wpf xaml mvvm

我正在基于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。问题是处理旧页面的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

你在做什么应该没事。如果垃圾收集器尚未处理页面,那么还没有必要这样做。如果您担心这些旧页面是否可以是垃圾收集,或者您只是想强制收集发生。尝试使用:

显式调用垃圾收集器
GC.Collect();