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할 때 해당 종속성 속성에 대해 등록된 모든 연결 및 적용 가능한 CoerceValueCallbackPropertyChangedCallback 함수가 호출될 수 있습니다.

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

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

적용 대상

추가 정보