Мое приложение открывается и закрывается несколько раз в одном и том же виде, и каждый раз, когда цикл продолжается, он становится вялым и вялым.Если я не присоединяю какой-либо обработчик к событию ValueChanged в моем DependencyProperty, сборщик мусора собирает, как и ожидалось.Если я добавлю это неявно в объявлении:
public static DependencyProperty selectedCharProperty = DependencyProperty.Register(
"SelectedChar",
typeof(Characteristic),
typeof(GenericGraphicSectionUserControl),
new PropertyMetadata(OnSelCharChanged)
);
или отдельно в ctor:
TypeDescriptor.GetProperties(this)["SelectedChar"].AddValueChanged(this, OnSelCharChanged);
, тогда экземпляры будут накапливаться. Это самый близкий вопрос, который я мог найти по этому вопросу , но, несмотря на то, что он компилируется и все остальное, кажется, не решает проблему.Я также попытался
TypeDescriptor.GetProperties(this)["SelectedChar"].RemoveValueChanged(this, OnSelCharChanged);
установить, где, я уверен, элемент управления будет выгружен, но он только задерживает утечку на одну итерацию.Могу ли я попробовать что-нибудь еще?