상속, 어떻게 상속 DependencyProperty에 IsEnabledProperty에 대한 PropertyChangedCallback를 추가하려면? WPF - 사용자 지정 컨트롤 - 다음과 같은 <strong>사용자 지정 컨트롤</strong>의 경우 DependencyProperty에와 PropertyChangedCallback
예
public class MyCustomControl : ContentControl
{
// Custom Dependency Properties
static MyCustomControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new FrameworkPropertyMetadata(typeof(MyCustomControl)));
// TODO (?) IsEnabledProperty.OverrideMetadata(typeof(MyCustomControl), new PropertyMetadata(true, CustomEnabledHandler));
}
public CustomEnabledHandler(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// Implementation
}
}
는 같은 다른 옵션은
IsEnabledChangeEvent
public class MyCustomControl : ContentControl
{
public MyCustomControl()
{
IsEnabledChanged += …
}
}
을들을하지만 모든 인스턴스에 접근 등록 이벤트 핸들러를 좋아하지 않아있다. 그래서 나는 메타 데이터를 우선하는 것을 선호한다.
OverrideMetadata의 문제점은 무엇입니까? 그러나 PropertyMetadata 대신 FrameworkPropertyMetadata 여야합니다. – Clemens
@Clemens ** XAML **에서이 컨트롤을 사용하면 오류가 발생합니다. _Metadata 재정의 및 기본 메타 데이터는 동일한 유형 또는 파생 된 형식이어야합니다. _ FrameworkPropertyMetadata에서도 시도합니다. – David
FrameworkPropertyMetadata와 함께 작동합니다. 다시 시도하십시오. – Clemens