3

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

public class MyComboBox : ComboBox

{

private IDisposableObject _innerObject;   
[..]

} 

当控件被 GC'ed 时,如何确保该对象被释放,最好的方法是什么?

提前致谢。

PS:我尝试了该Finalizer方法,但我认为这不是一个干净且好的解决方案,并且与Unloaded控件的事件有关(当主题更改时也会引发)。

4

1 回答 1

0

让您的 MyComboBox 实现 IDisposable 并在该处置方法中处置您的其他对象。当您完成组合框调用 dispose 时。

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;    
    [..] 

    public void  Dispose()
    {
        _innerObject.Dispose();
    }
}
于 2011-11-29T00:08:18.773 回答