Leer en inglés

Compartir vía


DependencyPropertyChangedEventArgs Estructura

Definición

Importante

Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.

Proporciona datos de los distintos eventos de cambio de propiedades. Normalmente, estos eventos notifican cambios de valor efectivos en el valor de una propiedad de dependencia de solo lectura. Otro uso es como parte de una implementación de PropertyChangedCallback.

C#
public struct DependencyPropertyChangedEventArgs
Herencia
DependencyPropertyChangedEventArgs

Ejemplos

En el ejemplo siguiente se usa la DependencyPropertyChangedEventArgs clase en el contexto de para PropertyChangedCallback una propiedad determinada de una clase personalizada que también define eventos. La devolución de llamada toma los resultados de los valores antiguos y nuevos del sistema de propiedades tal y como se comunica mediante DependencyPropertyChangedEventArgsy los vuelve a empaquetar en una clase RoutedPropertyChangedEventArgs<T>de argumentos de eventos diferente . A continuación, los nuevos argumentos se usan como datos para un evento "ValueChanged" definido por y generado por la clase personalizada.

C#
public static readonly DependencyProperty ValueProperty =
    DependencyProperty.Register(
        "Value", typeof(decimal), typeof(NumericUpDown),
        new FrameworkPropertyMetadata(MinValue, new PropertyChangedCallback(OnValueChanged),
                                      new CoerceValueCallback(CoerceValue)));

private static object CoerceValue(DependencyObject element, object value)
{
    decimal newValue = (decimal)value;

    newValue = Math.Max(MinValue, Math.Min(MaxValue, newValue));

    return newValue;
}

private static void OnValueChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
    NumericUpDown control = (NumericUpDown)obj;

    RoutedPropertyChangedEventArgs<decimal> e = new RoutedPropertyChangedEventArgs<decimal>(
        (decimal)args.OldValue, (decimal)args.NewValue, ValueChangedEvent);
    control.OnValueChanged(e);
}
/// <summary>
/// Identifies the ValueChanged routed event.
/// </summary>
public static readonly RoutedEvent ValueChangedEvent = EventManager.RegisterRoutedEvent(
    "ValueChanged", RoutingStrategy.Bubble,
    typeof(RoutedPropertyChangedEventHandler<decimal>), typeof(NumericUpDown));

/// <summary>
/// Occurs when the Value property changes.
/// </summary>
public event RoutedPropertyChangedEventHandler<decimal> ValueChanged
{
    add { AddHandler(ValueChangedEvent, value); }
    remove { RemoveHandler(ValueChangedEvent, value); }
}
/// <summary>
/// Raises the ValueChanged event.
/// </summary>
/// <param name="args">Arguments associated with the ValueChanged event.</param>
protected virtual void OnValueChanged(RoutedPropertyChangedEventArgs<decimal> args)
{
    RaiseEvent(args);
}

Comentarios

Los eventos que usan la clase para los DependencyPropertyChangedEventArgs datos de eventos y las DependencyPropertyChangedEventHandler implementaciones de método para los controladores, generalmente siguen el patrón Is*Changedde nomenclatura y, por lo general, se implementan como eventos de Common Language Runtime (CLR) sin RoutedEvent respaldo (no son eventos enrutados). Algunos métodos de control de clases que "controlan" de lo contrario eventos no expuestos que notifican un cambio de estado a través de un cambio de propiedad, como ButtonBase.OnIsPressedChanged, también usan la clase para los DependencyPropertyChangedEventArgs datos de eventos.

El escenario de PropertyChangedCallback es usar los argumentos para notificar valores antiguos y nuevos que proceden de la evaluación del sistema de propiedades de la propiedad. Una devolución de llamada que procesa valores antiguos y nuevos puede elegir un control especial en función de estos valores, como elegir no responder a los cambios de valor que se consideran insignificantes.

Constructores

Propiedades

NewValue

Obtiene el valor de la propiedad después del cambio.

OldValue

Obtiene el valor de la propiedad antes del cambio.

Property

Obtiene el identificador para la propiedad de dependencia en la que se produjo el cambio de valor.

Métodos

Equals(DependencyPropertyChangedEventArgs)

Determina si el DependencyPropertyChangedEventArgs proporcionado es equivalente al DependencyPropertyChangedEventArgs actual.

Equals(Object)

Determina si el objeto proporcionado es equivalente al DependencyPropertyChangedEventArgs actual.

GetHashCode()

Obtiene un código hash de este objeto DependencyPropertyChangedEventArgs.

Operadores

Se aplica a

Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también