DependencyObject.InvalidateProperty(DependencyProperty) Method

Definition

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

Parameters

dp
DependencyProperty

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

Examples

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.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 technique alternative à l’appel de la méthode CoerceValue, car l’invalidation de la propriété appellera également tout CoerceValueCallbackinscrit.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

Remarks

Lorsque vous appelez InvalidateProperty, toutes les fonctions CoerceValueCallback et PropertyChangedCallback associées et applicables inscrites 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.

L’appel de InvalidateProperty sur une propriété dont la valeur locale est définie n’a 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.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 appeler 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.

L’appel de InvalidateProperty n’est pas nécessairement applicable à 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 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.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 dans lesquels 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 du rappel de modification de propriété 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 ne peut pas implémenter le mécanisme de notification INotifyPropertyChanged recommandé (peut-être si vous utilisez des classes de données qui ne peuvent pas être dérivées de, ou lorsque les données sont un membre statique).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).

Applies to

See also