1

특정 상속 된 연결된 속성을 사용하는 컨트롤이 있고 해당 컨트롤에서 시각적 트리의 일부가 아니므로 해당 속성이 생성자에서 액세스 할 수 없다는 것을 알았습니다. 연결된 속성을 상속받을 수는 없습니다. - 무슨 일이 컨트롤의의 초기 단계입니다컨트롤의 수명 중 어느 단계에서 상속 된 속성에 액세스 할 수 있습니까?

// Constructor 
public MyClassName() 
{ 
    InitializeComponent(); 

    Loaded += OnLoaded; 
} 

void OnLoaded(object sender, RoutedEventArgs e) 
{ 
    Loaded -= OnLoaded; 

    MyValue value = DeclaringClass.GetMyAttachedProperty(depObj); // value != null 

    // Do something with value 
} 

그래서이 내 질문에 날을 제공합니다 : 나는 Loaded 이벤트 동안 속성에 액세스하려고하면

// Constructor 
public MyClassName() 
{ 
    InitializeComponent(); 

    MyValue value = DeclaringClass.GetMyAttachedProperty(depObj); // value == null 
} 

, 나는 값을 검색 할 수 있어요 상속 된 부착 된 속성에 액세스 할 수있는 평생? 대신 Loaded 이벤트에서 그렇게 할 수있는 더 좋은 곳이 있습니까?

답변

1

가능한 한 가장 빠른 것은 Loaded 이벤트 처리기 안에 있습니다. 유일한 다른 선택은 생성자 (또는 도덕적으로 동일한 Initialized 이벤트)이지만 종속성 속성이 상속 된 값을 취하는 것은 너무 이릅니다.

MSDN의 common object lifetime events도 참조하십시오.