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 wird InvalidateProperty ändern für die benutzerdefinierte Eigenschaft jedes Mal, wenn Sie Eigenschaften, die in der Eigenschaft für ungültig erklärten Berechnungen beteiligt sind.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 Aufruf der CoerceValue -Methode, da die Eigenschaft für ungültig zu erklären auch jeden Aufruf wird registriert 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

Hinweise

Beim Aufruf InvalidateProperty, alle zugeordneten und anwendbaren CoerceValueCallback oder PropertyChangedCallback Funktionen registriert wird, für die Abhängigkeitseigenschaft, die aufgerufen werden kann.When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

Aufrufen von InvalidateProperty auf eine Eigenschaft mit dem lokalen Wert hat keine Auswirkungen, da der lokale Wert Vorrang vor anderen Eingaben des Eigenschaft-System, mit Ausnahme von Animationen hat.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 aufrufen ClearValue, rufen Sie anschließend InvalidateProperty.However, 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.

Aufrufen von InvalidateProperty ist nicht notwendigerweise auch für viele Szenarien der Dependency-Eigenschaft.Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. Wenn aufgrund von Änderungen in einer der Bestandteile eine Abhängigkeitseigenschaft ungültig wird, wird das Eigenschaftensystem erklärt und wertet die Abhängigkeitseigenschaft automatisch neu aus.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 Szenarios, in denen InvalidateProperty eignet.However, there are still some appropriate scenarios where InvalidateProperty is useful. Insbesondere können Sie InvalidateProperty in die Coerce-Wert oder eine Eigenschaft geändert Rückruf für eine andere Abhängigkeitseigenschaft.In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. Sie können auch InvalidateProperty um eine erneute Auswertung von einer Bindung für eine Datenquelle zu erzwingen, die nicht die empfohlene implementieren kann INotifyPropertyChanged Benachrichtigungsmechanismus (vielleicht Datenklassen in Anspruch, kann nicht abgeleitet werden, oder die Daten, in denen eine statische sind, (Element).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