RoutedPropertyChangedEventHandler<T> Delegado

Definición

Representa métodos que controlarán diversos eventos enrutados que realizan el seguimiento de los cambios de valor de propiedad.

generic <typename T>
public delegate void RoutedPropertyChangedEventHandler(System::Object ^ sender, RoutedPropertyChangedEventArgs<T> ^ e);
public delegate void RoutedPropertyChangedEventHandler<T>(object sender, RoutedPropertyChangedEventArgs<T> e);
type RoutedPropertyChangedEventHandler<'T> = delegate of obj * RoutedPropertyChangedEventArgs<'T> -> unit
Public Delegate Sub RoutedPropertyChangedEventHandler(Of T)(sender As Object, e As RoutedPropertyChangedEventArgs(Of T))

Parámetros de tipo

T

Tipo del valor de propiedad donde se notifican los cambios de valor.

Parámetros

sender
Object

Objeto en que está asociado el controlador de eventos.

e
RoutedPropertyChangedEventArgs<T>

Datos del evento. Las definiciones de eventos específicos restringirán RoutedPropertyChangedEventArgs<T> a un tipo, coincidiendo el parámetro de tipo de la restricción con la restricción de parámetro de tipo de una implementación de delegado.

Ejemplos

En el ejemplo siguiente se define y se adjunta un método de controlador para el ValueChanged evento.

El controlador se basa en RoutedPropertyChangedEventHandler<T>y se define en el segundo segmento del ejemplo de código, con el parámetro type del genérico restringido a Double.

Slider childrenCountSlider = (Slider)LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountSlider");
childrenCountSlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(OnChildrenCountChanged);
Dim childrenCountSlider As Slider = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountSlider"), Slider)
AddHandler childrenCountSlider.ValueChanged, AddressOf OnChildrenCountChanged
private void OnChildrenCountChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    int childrenCount = (int)Math.Floor(e.NewValue + 0.5);

    //  Update the children count...
    AutoIndexingGrid g = (AutoIndexingGrid)LogicalTreeHelper.FindLogicalNode(myWindow, "TargetGrid");
    while (g.Children.Count < childrenCount)
    {
        Control c = new Control();
        g.Children.Add(c);
        c.Style = (Style)c.FindResource("ImageWithBorder");
    }
    while (g.Children.Count > childrenCount)
    {
        g.Children.Remove(g.Children[g.Children.Count - 1]);
    }


    //  Update TextBlock element displaying the count...
    TextBlock t = (TextBlock)LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountDisplay");
    t.Text = childrenCount.ToString();
}
Private Sub OnChildrenCountChanged(ByVal sender As Object, ByVal e As RoutedPropertyChangedEventArgs(Of Double))
    Dim childrenCount As Integer = CInt(Fix(Math.Floor(e.NewValue + 0.5)))

    '  Update the children count...
    Dim g As AutoIndexingGrid = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "TargetGrid"), AutoIndexingGrid)
    Do While g.Children.Count < childrenCount
        Dim c As New Control()
        g.Children.Add(c)
        c.Style = CType(c.FindResource("ImageWithBorder"), Style)
    Loop
    Do While g.Children.Count > childrenCount
        g.Children.Remove(g.Children(g.Children.Count - 1))
    Loop


    '  Update TextBlock element displaying the count...
    Dim t As TextBlock = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountDisplay"), TextBlock)
    t.Text = childrenCount.ToString()
End Sub

En este ejemplo concreto no se usa la característica routed-event del evento; el evento se controla en el mismo elemento en el que se genera. Pero no siempre es así. En el caso de un evento enrutado, es posible que el origen del evento sea un objeto diferente al objeto donde se adjunta el controlador.

Comentarios

Ejemplos de eventos que usan delegados con restricciones de tipos en RoutedPropertyChangedEventHandler<T> función de include TreeView.SelectedItemChanged y RangeBase.ValueChanged.

Métodos de extensión

GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.

Se aplica a

Consulte también