2009-12-16 61 views
4

當我們對任何依賴對象使用任何附加屬性時,我將它實際上映射到屬性和值與依賴對象。垃圾回收時,依賴關係對象被銷燬斷開

E.g. <DockPanel><TextBlock x:Name="MyText" DockPanel.Dock="Top"/></DockPanel>

這裏值「頂」是通過依賴對象文本塊「MYTEXT」

映射與DockPanels DockProperty但我的問題是,當設置在該映射?我問這個的原因是DockPanel的DockProperty是靜態的\共享。所以它必須有這樣的多重映射Pair(值,依賴對象)在某種內部字典中反對它。 (只是一個猜測)

因此,當依賴對象被銷燬時,這必須被垃圾回收。

所以,現在我的觀點是,有沒有辦法,我應該知道,如果這樣的附加屬性diposing正在發生(如某種dispairing的或給定的附加屬性和依賴對象處理事件)?

此外,如果這樣的垃圾收集不發生然後不是這是一個內存泄漏?

THX 攝影指導Vinit Sankhe。

回答

2

據我瞭解WPF中的新屬性系統,DependecyObject本身存儲的值。 在你的例子中,這將是文本塊。 您撥打的靜態成員不要誤會 - 這是應該等來實現:

element.SetValue(DockPanel.TopProperty, value); 

因此,有沒有發生靜態字段存儲。

1

我認爲它是使用WeakReference創建的。所以定期刪除空引用。