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 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 à CoerceValue l’appel de la méthode, car l’invalidation de la propriété CoerceValueCallbackappellera également tout inscrit.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, les fonctions associées et CoerceValueCallback applicables PropertyChangedCallback ou 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' InvalidateProperty 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.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' InvalidateProperty appel de 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 InvalidateProperty lesquels 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 n’est pas en INotifyPropertyChanged mesure d’implémenter le mécanisme de notification recommandé (peut-être si vous utilisez des classes de données qui ne peuvent pas être dérivées de ou où les données sont statiques). 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