DependencyPropertyChangedEventArgs Struktura

Definicja

Udostępnia dane dla różnych zdarzeń zmienionych właściwości. Zazwyczaj te zdarzenia zgłaszają obowiązujące zmiany wartości w wartości właściwości zależności tylko do odczytu. Inne użycie jest częścią PropertyChangedCallback implementacji.

public value class DependencyPropertyChangedEventArgs
public struct DependencyPropertyChangedEventArgs
type DependencyPropertyChangedEventArgs = struct
Public Structure DependencyPropertyChangedEventArgs
Dziedziczenie
DependencyPropertyChangedEventArgs

Przykłady

W poniższym przykładzie użyto DependencyPropertyChangedEventArgs klasy w kontekście PropertyChangedCallback określonej właściwości klasy niestandardowej, która również definiuje zdarzenia. Wywołanie zwrotne pobiera wyniki starych i nowych wartości z systemu właściwości zgodnie DependencyPropertyChangedEventArgsz instrukcjami i ponownie pakuje je do innej klasy RoutedPropertyChangedEventArgs<T>argumentów zdarzeń . Nowe argumenty są następnie używane jako dane zdarzenia "ValueChanged" zdefiniowanego przez klasę niestandardową i wywoływanego przez klasę niestandardową.

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);
}
Public Shared ReadOnly ValueProperty As DependencyProperty = DependencyProperty.Register("Value", GetType(Decimal), GetType(NumericUpDown), New FrameworkPropertyMetadata(MinValue, New PropertyChangedCallback(AddressOf OnValueChanged), New CoerceValueCallback(AddressOf CoerceValue)))

Private Shared Overloads Function CoerceValue(ByVal element As DependencyObject, ByVal value As Object) As Object
    Dim newValue As Decimal = CDec(value)

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

    Return newValue
End Function

Private Shared Sub OnValueChanged(ByVal obj As DependencyObject, ByVal args As DependencyPropertyChangedEventArgs)
    Dim control As NumericUpDown = CType(obj, NumericUpDown)

    Dim e As New RoutedPropertyChangedEventArgs(Of Decimal)(CDec(args.OldValue), CDec(args.NewValue), ValueChangedEvent)
    control.OnValueChanged(e)
End Sub
''' <summary>
''' Identifies the ValueChanged routed event.
''' </summary>
Public Shared ReadOnly ValueChangedEvent As RoutedEvent = EventManager.RegisterRoutedEvent("ValueChanged", RoutingStrategy.Bubble, GetType(RoutedPropertyChangedEventHandler(Of Decimal)), GetType(NumericUpDown))

''' <summary>
''' Occurs when the Value property changes.
''' </summary>
Public Custom Event ValueChanged As RoutedPropertyChangedEventHandler(Of Decimal)
    AddHandler(ByVal value As RoutedPropertyChangedEventHandler(Of Decimal))
        MyBase.AddHandler(ValueChangedEvent, value)
    End AddHandler
    RemoveHandler(ByVal value As RoutedPropertyChangedEventHandler(Of Decimal))
        MyBase.RemoveHandler(ValueChangedEvent, value)
    End RemoveHandler
    RaiseEvent(ByVal sender As System.Object, ByVal e As RoutedPropertyChangedEventArgs(Of Decimal))
    End RaiseEvent
End Event
''' <summary>
''' Raises the ValueChanged event.
''' </summary>
''' <param name="args">Arguments associated with the ValueChanged event.</param>
Protected Overridable Sub OnValueChanged(ByVal args As RoutedPropertyChangedEventArgs(Of Decimal))
    MyBase.RaiseEvent(args)
End Sub

Uwagi

Zdarzenia, które używają DependencyPropertyChangedEventArgs klasy dla danych zdarzeń i DependencyPropertyChangedEventHandler implementacji metody dla procedur obsługi, zazwyczaj są zgodne ze wzorcem Is*Changednazewnictwa i są zwykle implementowane jako zdarzenia środowiska uruchomieniowego języka wspólnego (CLR) bez RoutedEvent tworzenia kopii zapasowej (nie są to zdarzenia kierowane). Niektóre metody obsługi klas, które "obsługują" w przeciwnym razie nieeksponowane zdarzenia, które zgłaszają zmianę stanu przez zmianę właściwości, na przykład ButtonBase.OnIsPressedChanged, używają DependencyPropertyChangedEventArgs również klasy dla danych zdarzeń.

Scenariuszem jest PropertyChangedCallback użycie argumentów do raportowania starych i nowych wartości, które pochodzą z oceny systemu właściwości właściwości. Wywołanie zwrotne, które przetwarza stare i nowe wartości, może wybrać specjalną obsługę w zależności od tych wartości, takich jak wybór, aby nie reagować na zmiany wartości, które są uważane za nieistotne.

Konstruktory

DependencyPropertyChangedEventArgs(DependencyProperty, Object, Object)

Inicjuje nowe wystąpienie klasy DependencyPropertyChangedEventArgs.

Właściwości

NewValue

Pobiera wartość właściwości po zmianie.

OldValue

Pobiera wartość właściwości przed zmianą.

Property

Pobiera identyfikator właściwości zależności, w której nastąpiła zmiana wartości.

Metody

Equals(DependencyPropertyChangedEventArgs)

Określa, czy podany DependencyPropertyChangedEventArgs element jest odpowiednikiem bieżącego DependencyPropertyChangedEventArgselementu .

Equals(Object)

Określa, czy podany obiekt jest odpowiednikiem bieżącego DependencyPropertyChangedEventArgsobiektu .

GetHashCode()

Pobiera kod skrótu dla tego pliku DependencyPropertyChangedEventArgs.

Operatory

Equality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs)

Określa, czy dwa określone DependencyPropertyChangedEventArgs obiekty mają tę samą wartość.

Inequality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs)

Określa, czy dwa określone DependencyPropertyChangedEventArgs obiekty są różne.

Dotyczy

Zobacz też