Я реализую INavigation
в моем приложении WPF на основе MVVM Light Toolkit. Это реализация 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 навигаций я этого не вижу. Я вижу, что дескриптор вызывается после выхода из приложения. Вопрос в том, как лучше всего распоряжаться старой страницей?
Вы имеете в виду 'Dispose' или _finalizer_? Вы отказались от этого? какими ресурсами является страница, на которой нужно распоряжаться? –
Я полагаю, Dispose, потому что я не забочусь о завершении. Просто нужно заметить, что объекты где-то не сохранились. Ресурсы - это объекты пользовательского интерфейса в основном, но при укладке в память могут быть дорогостоящими. – Pablo
Если ваша форма не использовала неуправляемые ресурсы или управляемые ресурсы, которые реализуют «IDisposable», вам нечего делать, кроме как доверять сборщику мусора для выполнения своей работы. Он освобождает объекты из памяти _, когда ему нужно to_. –