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

Definición

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.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)

Parámetros

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

Identificador de DependencyProperty de la propiedad que se debe invalidar.The DependencyProperty identifier of the property to invalidate.

Ejemplos

El ejemplo siguiente se llama InvalidateProperty en una propiedad personalizada, siempre que cambian las propiedades que están implicadas en los cálculos de la propiedad invalidada.The following example calls InvalidateProperty on a custom property, whenever properties that are involved in the invalidated property's calculations change. Se trata de una técnica alternativa a llamar a la CoerceValue método, porque la propiedad que se invalide también llamará a cualquier registrado 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

Comentarios

Cuando se llama a InvalidateProperty, cualquier asociado y aplicable CoerceValueCallback o PropertyChangedCallback funciones registrado para esa propiedad de dependencia podría ser invocada.When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

Una llamada a InvalidateProperty en una propiedad que tiene a su valor local establecido no tendrá ningún efecto, porque el valor local tiene prioridad sobre otras entradas del sistema de propiedad, excepto las animaciones.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. Sin embargo, podría llamar a ClearValue, a continuación, llamar a InvalidateProperty.However, you could call ClearValue, then call InvalidateProperty. Para obtener más información, consulte Prioridad de los valores de propiedades de dependencia.For more information, see Dependency Property Value Precedence.

Una llamada a InvalidateProperty no es necesariamente aplicable a muchos escenarios de propiedad de dependencia.Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. Si una propiedad de dependencia se invalida debido a cambios de valor en cualquiera de los componentes, el sistema de propiedades invalida y vuelve a evaluar la propiedad de dependencia de forma automática.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. Sin embargo, todavía hay algunos escenarios adecuados donde InvalidateProperty es útil.However, there are still some appropriate scenarios where InvalidateProperty is useful. En concreto, puede usar InvalidateProperty dentro de la propiedad o valor de coerción cambió la devolución de llamada para una propiedad de dependencia distinta.In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. También puede usar InvalidateProperty para forzar la reevaluación de un enlace con un origen de datos que no es capaz de implementar la recomendada INotifyPropertyChanged mecanismo de notificación (quizás si consume las clases de datos que no se pueden derivar o donde los datos están estático miembro).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).

Se aplica a

Consulte también: