DependencyObject.InvalidateProperty(DependencyProperty) Méthode

Définition

Réévalue la valeur effective de la propriété de dépendance spécifiée.

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)

Paramètres

dp
DependencyProperty

L'identificateur DependencyProperty de la propriété à invalider.

Exemples

L’exemple suivant appelle InvalidateProperty une propriété personnalisée chaque fois que les propriétés impliquées dans les calculs de la propriété invalidée changent. Il s’agit d’une technique alternative à l’appel de la CoerceValue méthode , car l’invalidation de la propriété appelle également tout inscrit 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

Remarques

Lorsque vous appelez InvalidateProperty, toutes les fonctions associées et applicables CoerceValueCallback ou PropertyChangedCallback inscrites pour cette propriété de dépendance peuvent être appelées.

L’appel InvalidateProperty sur une propriété dont la valeur locale est définie n’aura aucun effet, car la valeur locale est prioritaire sur les autres entrées du système de propriétés, à l’exception des animations. Toutefois, vous pouvez appeler ClearValue, puis appeler InvalidateProperty. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.

L’appel InvalidateProperty n’est pas nécessairement applicable à de nombreux scénarios de propriétés de dépendance. Si une propriété de dépendance devient invalidée en raison de modifications de valeur dans l’un des composants, le système de propriété invalide et réévalue automatiquement la propriété de dépendance. Toutefois, il existe encore quelques scénarios appropriés où InvalidateProperty est utile. En particulier, vous pouvez utiliser InvalidateProperty à l’intérieur de la valeur de force ou du rappel de modification de propriété pour une autre propriété de dépendance. Vous pouvez également utiliser InvalidateProperty pour forcer la réévaluation d’une liaison par rapport à une source de données qui n’est pas en mesure d’implémenter le mécanisme de notification recommandé INotifyPropertyChanged (peut-être si vous consommez des classes de données qui ne peuvent pas être dérivées ou si les données sont un membre statique).

S’applique à

Voir aussi