2011-11-28 51 views
3

我正在爲第三部分庫編寫一些WPF自定義控件。例如,我用一些依賴屬性增強了標準ComboBox。主要的問題是我的控件有私有實例,有些對象,我想要處理這些對象。 我控制的結構是這樣的:在WPF自定義控件中處理受管資源

public class MyComboBox : ComboBox 

{ 

private IDisposableObject _innerObject; 
[..] 

} 

如何確保該對象被設置在控制GC'ed,什麼是做到這一點的最好方法是什麼?

在此先感謝。

P.S:我試圖與Finalizer方法,但我認爲這不是一個乾淨,很好的解決方案,並與Unloaded事件控制的(即它也提出,當主題的變化)。

回答

0

讓您的MyComboBox實現IDisposable,並在此處置您的其他對象。 完成組合框呼叫處置後,

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;  
    [..] 

    public void Dispose() 
    { 
     _innerObject.Dispose(); 
    } 
} 
+1

嗨,謝謝你的回答。問題是ComboBox屬於一個控制庫,它只是在XAML代碼中使用。所以Dispose方法不會被調用。 – user1070316