(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

DependencyObject.InvalidateProperty-Methode

Berechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neu

Namespace:  System.Windows
Assembly:  WindowsBase (in WindowsBase.dll)
public void InvalidateProperty(
	DependencyProperty dp
)

Parameter

dp
Typ: System.Windows.DependencyProperty
Der DependencyProperty-Bezeichner der neu zu berechnenden Eigenschaft.

Sobald Sie InvalidateProperty aufrufen, werden alle zugeordneten und anwendbaren CoerceValueCallback-Funktionen und PropertyChangedCallback-Funktionen aufgerufen, die für diese Abhängigkeitseigenschaft registriert wurden.

Das Aufrufen von InvalidateProperty für eine Eigenschaft, deren lokaler Wert festgelegt ist, hat keine Auswirkungen, da der lokale Wert, mit Ausnahme von Animationen, Vorrang hat vor anderen Eingaben des Eigenschaftensystems. Sie können stattdessen jedoch ClearValue und anschließend InvalidateProperty aufrufen. Weitere Informationen finden Sie unter Priorität von Abhängigkeitseigenschaftswerten.

In vielen Szenarios ist es nicht unbedingt erforderlich, InvalidateProperty für eine Abhängigkeitseigenschaft aufzurufen. Wenn eine Abhängigkeitseigenschaft aufgrund von Wertänderungen in einem ihrer Bestandteile ungültig wird, erkennt das Eigenschaftensystem diese Änderung und führt automatisch eine Neuberechnung der ungültigen Abhängigkeitseigenschaft durch. Es gibt aber einige Szenarios, in denen InvalidateProperty dennoch sinnvoll eingesetzt werden kann. In einem Rückruf für das Umwandeln von Werten oder für Eigenschaftenänderungen kann InvalidateProperty z. B. für eine andere Abhängigkeitseigenschaft aufgerufen werden. Sie können InvalidateProperty auch verwenden, um die Neuberechnung einer Bindung anhand einer Datenquelle zu erzwingen, wenn der empfohlene INotifyPropertyChanged-Benachrichtigungsmechanismus für die betroffene Datenquelle nicht implementiert werden kann (etwa wenn Datenklassen verarbeitet werden, von denen nicht abgeleitet werden kann, oder wenn die Daten als statischer Member vorliegen).

Im folgenden Beispiel wird InvalidateProperty für eine benutzerdefinierte Eigenschaft aufgerufen, sobald sich eine der Eigenschaften ändert, die die Gültigkeitsberechnung für die Eigenschaft beeinflussen. Dieses Vorgehen ist eine Alternative zum Aufrufen der CoerceValue-Methode, da auch für eine ungültige Eigenschaft als Teil der Neuberechnung jeder registrierte CoerceValueCallback aufgerufen wird.


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);
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.