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 sur 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é appellera é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 , les fonctions associées et applicables CoerceValueCallback ou PropertyChangedCallback inscrites pour cette propriété de dépendance peuvent être appelées.

InvalidatePropertyL’appel de sur une propriété dont la valeur locale est définie n’aura aucun effet, car la valeur locale est prioritaire par rapport à d’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 de n’est pas nécessairement applicable à de nombreux scénarios de propriété 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és invalide et réévalue automatiquement la propriété de dépendance. Toutefois, il existe toujours des scénarios appropriés dans lesquels InvalidateProperty est utile. En particulier, vous pouvez utiliser InvalidateProperty à l’intérieur de la valeur forcée ou du rappel de modification de propriété pour une propriété de dépendance différente. 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é (peut-être si vous utilisez des INotifyPropertyChanged classes de données qui ne peuvent pas être dérivées de ou où les données sont un membre statique).

S’applique à

Voir aussi