прежде всего извините за мой английский.
Я обнаружил утечку памяти в своем коде, и я не знаю, что еще мне нужно сделать, чтобы ее решить.
Я делаю следующее во всем своем коде.Я создал UserControl для имитации окна с именем DragItem .у этого есть только XML с заголовком и границей, чтобы прикрепить его контент.Контент является еще одним UserControl в качестве параметра.Поэтому, когда я вызываю новое «окно», я делаю это следующим образом:
var detectionInfo = new DetectionInfoPage(_projectPage.searchControl, SelectedBookmark._Object, _projectId, SelectedBookmark);
var window = new DragItem(_mainTask, _mainTask.ContentMainTask)
{
Name = "dragDetectionInfo",
Title = "Detection Info",
UserControl = detectionInfo,
ModalWidth = 800,
ModalHeight = 500
};
detectionInfo.Initialize();
window.Show();
detectionInfo.onDetectionSaved += (o, bookmark) =>
{
SearchBookmarks();
};
window.OnClose += (o, b) =>
{
detectionInfo?.Destroy();
detectionInfo = null;
_mainTask.ContentMainTask.Children.Remove(window);
GC.Collect();
};
Я пытаюсь уничтожить все элементы и обратные вызовы, а также весь контент «UserControl» в обратном вызове OnClose и удаляюИз дерева создается экземпляр DragItem («окно»), и, кроме того, вызывается сборщик мусора ... Он исчезает из видимого содержимого, и я могу нормально взаимодействовать с интерфейсом, но код содержимого UserControl все еще работает ... и иногда яесть задние задачи, например «загрузка файлов», и этот процесс все еще работает, не убит.
Что еще мне не хватает?Как я могу УБИТЬ UserControls внутри других пользовательских контролей в WPF ??
Заранее спасибо !!!!