c# - 页面生命周期

标签 c# wpf xaml mvvm

我正在我的基于 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/

相关文章:

wpf - WPF应用程序出现问题,GUI响应缓慢

c# - 在 DateTimeAxis 中定位轴标签

c# - wpf中的进度条

c# - 设计器无法显示 XAML(类型“本地 :. .. 未找到”)

c# - 在C#.NET中使用XPath

c# - HttpGet 在 Mvc 核心 2.0 中返回 404

c# - ASP.Net 将文档转换和合并为单个 PDF

c# - 这是否违反了 SOLID 原则?

wpf - App.xaml样式不能在Usercontrol中使用,为什么?

c# - 用于鼠标中键单击的 XAML 调用命令 (System.Windows.Interactivity)