DependencyObject.InvalidateProperty(DependencyProperty) 메서드

정의

지정된 종속성 속성의 유효 값을 다시 계산합니다.

public:
 void InvalidateProperty(System::Windows::DependencyProperty ^ dp);
public void InvalidateProperty (System.Windows.DependencyProperty dp);
member this.InvalidateProperty : System.Windows.DependencyProperty -> unit
Public Sub InvalidateProperty (dp As DependencyProperty)

매개 변수

dp
DependencyProperty

무효화할 속성의 DependencyProperty 식별자입니다.

예제

다음은 무효화된 속성의 계산에 관련된 속성이 변경될 때마다 사용자 지정 속성을 호출 InvalidateProperty 하는 예제입니다. 속성을 무효화하면 등록된 CoerceValueCallback모든 메서드도 호출되기 때문에 메서드를 호출 CoerceValue 하는 대체 기술입니다.

static AreaButton()
{
    WidthProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
    HeightProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
}
static void InvalidateAreaProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    d.InvalidateProperty(AreaProperty);
}
Shared Sub New()
    WidthProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
    HeightProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
End Sub
Private Shared Sub InvalidateAreaProperty(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
    d.InvalidateProperty(AreaProperty)
End Sub

설명

호출InvalidateProperty할 때 해당 종속성 속성에 대해 등록된 모든 관련 함수 및 PropertyChangedCallback 적용 가능 CoerceValueCallback 함수가 호출될 수 있습니다.

로컬 값이 애니메이션을 제외한 다른 속성 시스템 입력보다 우선하기 때문에 로컬 값이 설정된 속성에 대한 호출 InvalidateProperty 은 효과가 없습니다. 그러나 호출한 다음 , 를 호출ClearValueInvalidateProperty할 수 있습니다. 자세한 내용은 종속성 속성 값 우선 순위를 참조하세요.

호출 InvalidateProperty 이 많은 종속성 속성 시나리오에 반드시 적용되는 것은 아닙니다. 구성 요소의 값 변경으로 인해 종속성 속성이 무효화되면 속성 시스템은 종속성 속성을 자동으로 무효화하고 다시 평가합니다. 그러나 여전히 유용한 몇 가지 적절한 시나리오 InvalidateProperty 가 있습니다. 특히 다른 종속성 속성에 대해 강제 변환 값 또는 속성 변경 콜백 내에서 사용할 InvalidateProperty 수 있습니다. 권장 INotifyPropertyChanged 알림 메커니즘을 구현할 수 없는 데이터 원본(파생될 수 없는 데이터 클래스를 사용하거나 데이터가 정적 멤버인 경우)에 대해 바인딩을 강제로 다시 평가하는 데 사용할 InvalidateProperty 수도 있습니다.

적용 대상

추가 정보