wpf - 在 WPF 自定义控件中处理托管资源

标签 wpf wpf-controls custom-controls disposing

我正在为第三方库编写一些 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/

相关文章:

wpf - 将组合框 SelectedValue 绑定(bind)到文本框

wpf - 类似于 WPF SL3 中的 DataForm 控件

c# - WPF 自定义控件 : Bind CollectionViewSource to DependencyProperty

Android 如何避免来自 android 默认日期选择器的周末

WPF自定义控件样式问题

wpf - ViewModel 是否持有模型?

c# - WPF DataGrid 行颜色基于变量变化

wpf - 如何为 YouTube 风格的视频应用程序实现 slider /进度条?

asp.net - 在dynamics crm中自定义一个控件

c# - 想要在单击按钮时动态地在网格中添加文本 block