DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) Method

Définition

Réévalue la valeur effective pour la propriété de dépendance spécifiéeRe-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)

Paramètres

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

L'identificateur DependencyProperty de la propriété à invalider.The DependencyProperty identifier of the property to invalidate.

Exemples

L’exemple suivant appelle InvalidateProperty sur une propriété personnalisée, chaque fois que modifier les propriétés qui sont impliquées dans les calculs de la propriété invalidée.The following example calls InvalidateProperty on a custom property, whenever properties that are involved in the invalidated property's calculations change. Il s’agit d’une autre technique à appeler le CoerceValue méthode, car l’invalidation de la propriété appellera également tout inscrite 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

Remarques

Lorsque vous appelez InvalidateProperty, toute associées et applicables CoerceValueCallback ou PropertyChangedCallback fonctions enregistrées pour cette propriété de dépendance peuvent être appelées.When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

Appel de InvalidateProperty sur une propriété a la valeur locale définie aura aucun effet, car la valeur locale est prioritaire sur les autres entrées de système de propriétés, à l’exception des animations.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. Toutefois, vous pouvez appeler ClearValue, puis appelez InvalidateProperty.However, you could call ClearValue, then call InvalidateProperty. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.For more information, see Dependency Property Value Precedence.

Appel InvalidateProperty n’est pas nécessairement applicable pour de nombreux scénarios de propriété de dépendance.Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. Si une propriété de dépendance est invalidée en raison des modifications de valeur dans un des composants, le système de propriétés invalide et réévalue automatiquement la propriété de dépendance.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. Toutefois, il existe toujours des scénarios appropriés où InvalidateProperty est utile.However, there are still some appropriate scenarios where InvalidateProperty is useful. En particulier, vous pouvez utiliser InvalidateProperty à l’intérieur de la valeur forcée ou la propriété rappel de modification pour une propriété de dépendance différente.In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. 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 l’architecture recommandée INotifyPropertyChanged mécanisme de notification (par exemple si l’utilisation des classes de données qui ne peut pas être dérivé ou où les données sont de type statique membre).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).

S’applique à

Voir aussi