3

サードパーティライブラリ用にいくつかのWPFカスタムコントロールを作成しています。たとえばComboBox、いくつかの依存関係プロパティを使用して標準を拡張しました。主な問題は、コントロールにプライベートインスタンスとしていくつかのIDisposableオブジェクトがあり、これらのオブジェクトを破棄したいということです。私のコントロールの構造は次のようなものです:

public class MyComboBox : ComboBox

{

private IDisposableObject _innerObject;   
[..]

} 

コントロールがGCされたときにこのオブジェクトが破棄されるようにするにはどうすればよいですか?それを行うための最良の方法は何ですか?

前もって感謝します。

PS:私はこの方法を試しましたFinalizerが、それはクリーンで良い解決策ではなくUnloaded、コントロールのイベント(テーマが変更されたときにも発生する)があると思います。

4

1 に答える 1

0

MyComboBox に IDisposable を実装させ、その中で他のオブジェクトを処分します。コンボボックスの呼び出しが終わったら、それに破棄します。

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;    
    [..] 

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