我正在为第三方库编写一些 WPF 自定义控件。例如,我用一些依赖属性增强了标准 ComboBox
。主要问题是我的控件有一些 IDisposable
对象作为私有(private)实例,我想处理这些对象。
我的控件结构是这样的:
public class MyComboBox : ComboBox
{
private IDisposableObject _innerObject;
[..]
}
当控件被 GC 处理时,我如何确保该对象被释放?最好的方法是什么?
提前致谢。
P.S.:我尝试使用 Finalizer
方法,但我认为这不是一个干净且好的解决方案,并且使用 Unloaded
事件控件的(当主题改变时它也会被提升)。
最佳答案
让您的 MyComboBox 实现 IDisposable 并在其中处置 menthod 处置您的其他对象。 完成组合框调用后对其进行处置。
public class MyComboBox : ComboBox, IDisposable
{
private IDisposableObject _innerObject;
[..]
public void Dispose()
{
_innerObject.Dispose();
}
}
关于wpf - 在 WPF 自定义控件中处理托管资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303882/