DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) Method

정의

지정된 종속성 속성의 유효 값을 다시 계산합니다.Re-evaluates the effective value for the specified dependency property

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 DependencyProperty DependencyProperty

무효화할 속성의 DependencyProperty 식별자입니다.The DependencyProperty identifier of the property to invalidate.

예제

다음 예제에서는 InvalidateProperty 무효화 된 속성의 계산에 포함 되는 속성이 변경 될 때마다 사용자 지정 속성입니다.The following example calls InvalidateProperty on a custom property, whenever properties that are involved in the invalidated property's calculations change. 이 호출 하는 대체 기술을 합니다 CoerceValue 메서드, 속성 무효화는 또한를 호출 하므로 모든 등록 CoerceValueCallback합니다.This is an alternative technique to calling the CoerceValue method, because invalidating the property will also call any registered CoerceValueCallback.

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, 모든 연결 및 해당 CoerceValueCallback 또는 PropertyChangedCallback 등록 된 함수에는 종속성 속성을 호출할 수 있습니다.When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

호출 InvalidateProperty 로컬 값이 설정 되어 있는 속성에는 되므로 효과가 없습니다, 로컬 값을 속성 시스템의 입력에 다른 애니메이션 제외 보다 우선 합니다.Calling InvalidateProperty on a property that has its local value set will have no effect, because the local value takes precedence over other property system inputs, except for animations. 호출할 수 있습니다 ClearValue, 다음 호출 InvalidateProperty합니다.However, you could call ClearValue, then call InvalidateProperty. 자세한 내용은 종속성 속성 값 우선 순위를 참조하세요.For more information, see Dependency Property Value Precedence.

호출 InvalidateProperty 대부분 종속성 속성 시나리오에 반드시 적용 되지 않습니다.Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. 종속성 속성에 다른 구성 요소의 값이 변경으로 인해 무효화 되 면 속성 시스템 무효화 하 고 자동으로 종속성 속성을 다시 평가 합니다.If a dependency property becomes invalidated because of value changes in any of the constituents, the property system invalidates and re-evaluates the dependency property automatically. 그러나 여전히 몇 가지 적절 한 시나리오가 있는 InvalidateProperty 유용 합니다.However, there are still some appropriate scenarios where InvalidateProperty is useful. 사용할 수는 특히 InvalidateProperty 강제 값 또는 속성 내에서 다른 종속성 속성에 대 한 콜백을 변경 합니다.In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. 사용할 수도 있습니다 InvalidateProperty 재평가 권장 구현할 수 없는 데이터 원본에 대해 바인딩을 적용할 INotifyPropertyChanged 알림 메커니즘 (아마도 데이터 클래스에서 파생 될 수 없습니다 또는 정적 데이터를 사용 하는 경우 멤버)입니다.You can also use InvalidateProperty to force re-evaluation of a binding against a data source that is not able to implement the recommended INotifyPropertyChanged notification mechanism (perhaps if consuming data classes that cannot be derived from, or where the data is a static member).

적용 대상

추가 정보