DependencyObject.InvalidateProperty(DependencyProperty) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus.
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
Der DependencyProperty Bezeichner der Eigenschaft, die ungültig werden soll.
Beispiele
Im folgenden Beispiel wird eine benutzerdefinierte Eigenschaft aufgerufen InvalidateProperty , wenn sich eigenschaften, die an den Berechnungen der ungültigen Eigenschaft beteiligt sind, ändern. Dies ist eine alternative Technik zum Aufrufen der CoerceValue Methode, da durch das Ungültigen der Eigenschaft auch alle registrierten aufgerufen CoerceValueCallbackwerden.
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, werden möglicherweise alle für diese Abhängigkeitseigenschaft registrierten zugeordneten und anwendbaren CoerceValueCallback Funktionen PropertyChangedCallback aufgerufen.
Das Aufrufen InvalidateProperty einer Eigenschaft mit dem lokalen Wertsatz hat keine Auswirkung, da der lokale Wert Vorrang vor anderen Eigenschaftensystemeingaben hat, mit Ausnahme von Animationen. Sie können jedoch anrufen ClearValueund dann anrufen InvalidateProperty. Weitere Informationen finden Sie unter Dependency Property Value Precedence.
Das Aufrufen InvalidateProperty gilt nicht unbedingt für viele Abhängigkeitseigenschaftsszenarien. Wenn eine Abhängigkeitseigenschaft aufgrund von Wertänderungen in einem der Bestandteile ungültig wird, wird das Eigenschaftensystem ungültig und die Abhängigkeitseigenschaft automatisch neu ausgewertet. Es gibt jedoch noch einige geeignete Szenarien, in denen InvalidateProperty es hilfreich ist. Insbesondere können Sie innerhalb des Coerce-Werts oder des Geänderten Eigenschaftsrückrufs für eine andere Abhängigkeitseigenschaft verwenden InvalidateProperty . Sie können auch die InvalidateProperty erneute Auswertung einer Bindung für eine Datenquelle erzwingen, die den empfohlenen INotifyPropertyChanged Benachrichtigungsmechanismus nicht implementieren kann (z. B. wenn Datenklassen verwendet werden, die nicht abgeleitet werden können oder wo die Daten ein statisches Element sind).