2011-11-28 2 views
3

세 번째 파트 라이브러리에 대한 WPF 사용자 지정 컨트롤을 작성하고 있습니다. 예를 들어 일부 종속성 속성을 사용하여 표준 ComboBox을 향상 시켰습니다. 주요 문제는 내 컨트롤이 개인 인스턴스로 일부 IDisposable 개체를 가지고 있으며 이러한 개체를 처리하고 싶습니다. 내 컨트롤의 구조는 다음과 같이이다 : 컨트롤이 GC'ed하고 그렇게 할 수있는 가장 좋은 방법은 무엇입니까 때WPF 사용자 지정 컨트롤에서 관리되는 리소스 처리

public class MyComboBox : ComboBox 

{ 

private IDisposableObject _innerObject; 
[..] 

} 

어떻게이 객체가 배치되어 있는지 확인 할 수 있습니까?

미리 감사드립니다.

P.S :은 내가 Finalizer 방법했지만, 나는 그것이 깨끗하고 좋은 해결책이 아니라고 생각하고, 컨트롤의 Unloaded 이벤트에 (그것도 제기 있다고 할 때 테마 변경).

답변

0

MyComboBox에 IDisposable을 구현하고 menthod에서 다른 개체를 처리하도록하십시오. 콤보 상자 작업을 마쳤 으면 전화를 겁니다.

public class MyComboBox : ComboBox, IDisposable 
{ 

    private IDisposableObject _innerObject;  
    [..] 

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

안녕하세요. 문제는 ComboBox가 컨트롤 라이브러리에 속해 있다는 것입니다.이 컨트롤 라이브러리는 XAML 코드에서만 사용됩니다. 따라서 Dispose 메서드는 호출되지 않습니다. – user1070316

관련 문제