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

Definition

Berechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neuRe-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)

Parameter

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

Der DependencyProperty-Bezeichner der neu zu berechnenden Eigenschaft.The DependencyProperty identifier of the property to invalidate.

Beispiele

Im folgenden Beispiel InvalidateProperty wird für eine benutzerdefinierte Eigenschaft aufgerufen, wenn Eigenschaften, die an den Berechnungen der ungültigen Eigenschaft beteiligt sind, geändert werden.The following example calls InvalidateProperty on a custom property, whenever properties that are involved in the invalidated property's calculations change. Dies ist eine alternative Methode zum Aufrufen der CoerceValue -Methode, da durch das Aufheben der-Eigenschaft auch alle CoerceValueCallbackregistrierten aufgerufen werden.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

Hinweise

Wenn Sie aufrufen InvalidateProperty, können alle zugeordneten CoerceValueCallback und PropertyChangedCallback anwendbaren Funktionen oder Funktionen, die für diese Abhängigkeits Eigenschaft registriert sind, aufgerufen werden.When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

Das InvalidateProperty Aufrufen von für eine Eigenschaft, deren lokaler Wert festgelegt ist, hat keine Auswirkung, da der lokale Wert Vorrang vor anderen Eigenschaften System Eingaben hat, mit Ausnahme von Animationen.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. Sie können jedoch auch aufzurufen ClearValueund dann aufzurufen. InvalidatePropertyHowever, you could call ClearValue, then call InvalidateProperty. Weitere Informationen finden Sie unter Priorität von Abhängigkeitseigenschaftswerten.For more information, see Dependency Property Value Precedence.

Das InvalidateProperty Aufrufen von ist nicht notwendigerweise auf viele Szenarien mit Abhängigkeits Eigenschaften anwendbar.Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. Wenn eine Abhängigkeits Eigenschaft aufgrund von Wertänderungen in einer der Bestandteile ungültig wird, wird die Abhängigkeits Eigenschaft durch das Eigenschaften System ungültig und automatisch erneut ausgewertet.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. Es gibt jedoch noch einige geeignete Szenarios, InvalidateProperty in denen nützlich ist.However, there are still some appropriate scenarios where InvalidateProperty is useful. Insbesondere können Sie innerhalb des coerce-Werts oder des Eigenschafts geänderten Rückrufs für eine andere Abhängigkeits Eigenschaft verwenden InvalidateProperty .In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. Sie können auch verwenden InvalidateProperty , um die erneute Auswertung einer Bindung für eine Datenquelle zu erzwingen, die nicht in der Lage ist INotifyPropertyChanged , den empfohlenen Benachrichtigungs Mechanismus zu implementieren (z. b. Wenn Sie Daten Klassen verwenden, die nicht von abgeleitet werden können, oder wenn die Daten statisch sind). -Member).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).

Gilt für:

Siehe auch