2010-11-25 7 views
7

Acabo de investigar algunos controles de Silverlight con ANTS Memory Profiler (¡genial!) Y descubrí que algunos de mis controles se quedan en la memoria. La solución a esto ha sido restablecer los valores de Plantilla y Contenido a nulos cuando el control 'Descarga' y borrar cualquier Enlace que he hecho en el código.Cómo escribir Silverlight Controles que no pierden memoria

¿Es este el patrón normal para tratar con los controles personalizados de Silverlight y no he podido hacer esto correctamente en el pasado?

¿Alguien conoce un paradigma, p. del patrón para escribir los controles de Silverlight con una limpieza ordenada?

Addendum He estado investigando esto más a fondo y he encontrado que los enlaces a DataContext se eliminan cuando DataContext se establece en nulo. Parece que el procedimiento correcto es establecer cualquier valor de contexto de datos en el evento cargado y establecerlo como nulo en el evento descargado. Todavía tengo un problema fundamental con el paradigma para escribir Controles de Silverlight Templated ya que no puedo forzar que se destruya ContentControls (vea mi problema aquí: Why are Silverlight ContentControls not garbage collected?).

+0

¿Podemos ver algún código de ejemplo? ¿Tiene controles/Modelos de vista con eventos adjuntos? Si es así, ¿se separaron correctamente cuando ya no son necesarios? –

Respuesta

Cuestiones relacionadas