Sto cercando di creare un sistema di binding simile a quello utilizzato in WPF e ho riscontrato alcuni problemi di perdita di memoria, quindi ecco che arriva la mia domanda: come viene gestita la memoria nel sistema di proprietà WPF?
Da quello che so nei valori WPF di DependencyProperties
sono memorizzati in contenitori esterni - quello che voglio sapere è come vengono raccolti quando DependencyObject
muore?
La soluzione più semplice sarebbe quella di archiviarli è un dizionario di riferimento debole - ma qui viene il problema principale a cui mi sono imbattuto - quando c'è un listener sulla proprietà che deve fare riferimento al suo genitore (questa proprietà) che lo tiene (il genitore) vivo (quando il valore del dizionario di riferimento debole punta da qualche parte, anche indirettamente, alla chiave: non può essere raccolto).
Come viene evitato in WPF senza la necessità di usare riferimenti deboli ovunque?