在WPF自定义控件中处置托管资源

时间:2011-11-28 23:28:48

标签: wpf wpf-controls custom-controls disposing

我正在为第三方库编写一些WPF自定义控件。例如,我使用一些依赖属性增强了标准ComboBox。主要问题是我的控件有一些IDisposable个私有实例,我想处理这些对象。 我的控件的结构是这样的:

public class MyComboBox : ComboBox

{

private IDisposableObject _innerObject;   
[..]

} 

如何在控件是GC时确保放置此对象,以及最佳方法是什么?

提前致谢。

PS:我尝试使用Finalizer方法,但我认为这不是一个干净而且很好的解决方案,并且使用控件的Unloaded事件(它是当主题发生变化时也会提出。)

1 个答案:

答案 0 :(得分:0)

让你的ComboBox实现IDisposable并在该dispose方法中处理你的其他对象。 当您完成组合框呼叫处理时。

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;    
    [..] 

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