Freigeben über


RoutedPropertyChangedEventHandler<T> Delegat

Definition

Stellt Methoden dar, die verschiedene weitergeleitete Ereignisse behandeln, die geänderte Eigenschaftswerte verfolgen.

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))

Typparameter

T

Der Typ des Eigenschaftswerts, für den geänderte Werte gemeldet werden.

Parameter

sender
Object

Das Objekt, an das der Ereignishandler angefügt ist.

e
RoutedPropertyChangedEventArgs<T>

Die Ereignisdaten. Bestimmte Ereignisdefinitionen schränken RoutedPropertyChangedEventArgs<T> auf einen Typ ein, wobei der Typparameter der Einschränkung mit der Typparametereinschränkung einer Delegatimplementierung übereinstimmen.

Beispiele

Im folgenden Beispiel wird eine Handlermethode für das ValueChanged Ereignis definiert und angefügt.

Der Handler basiert auf RoutedPropertyChangedEventHandler<T>und wird im zweiten Segment des Codebeispiels definiert, wobei der Typparameter des generischen auf Doublebeschränkt ist.

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

In diesem speziellen Beispiel wird das Routingereignismerkmal des Ereignisses nicht verwendet. das Ereignis wird für dasselbe Element behandelt, für das es ausgelöst wird. Dies ist jedoch nicht immer der Fall. Bei einem Routingereignis ist es möglich, dass die Quelle des Ereignisses ein anderes Objekt als das Objekt ist, in dem der Handler angefügt ist.

Hinweise

Beispiele für Ereignisse, die typbeschränkte Delegaten basierend auf RoutedPropertyChangedEventHandler<T> include TreeView.SelectedItemChanged und RangeBase.ValueChangedverwenden.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.

Gilt für:

Weitere Informationen