Как написать элементы управления Silverlight, не допускающие утечки памяти

Я только что исследовал некоторые элементы управления Silverlight с помощью ANTS Memory Profiler (великолепно!) И обнаружил, что некоторые из моих элементов управления остаются в памяти. Решением этой проблемы было сбросить значения Template и Content на null при управлении «Unloads» и очистить все привязки, которые я сделал в коде.

Является ли это нормальным шаблоном для работы с пользовательскими элементами управления Silverlight, и я просто не смог сделать это должным образом в прошлом?

Кто-нибудь знает о парадигме, например, о шаблоне для написания элементов управления Silverlight с аккуратной очисткой?

Приложение I ' Мы исследовали это дальше и обнаружили, что привязки к DataContext удаляются, когда DataContext имеет значение null. Кажется, что правильная процедура - установить любое значение Datacontext в событии Loaded и установить для него значение null в событии Unloaded. У меня все еще есть фундаментальная проблема с парадигмой для написания шаблонных элементов управления Silverlight, так как я просто не могу принудительно уничтожить ContentControls (см. Мою проблему здесь: Почему Silverlight ContentControls не собирает мусор? ).

7
задан Community 23 May 2017 в 12:29
поделиться