2011-11-28 52 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