Утечка памяти на AddValueChanged свойства зависимости - PullRequest
0 голосов
/ 21 марта 2019

Мое приложение открывается и закрывается несколько раз в одном и том же виде, и каждый раз, когда цикл продолжается, он становится вялым и вялым.Если я не присоединяю какой-либо обработчик к событию 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);

установить, где, я уверен, элемент управления будет выгружен, но он только задерживает утечку на одну итерацию.Могу ли я попробовать что-нибудь еще?

...