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.

C#
public struct 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ą.

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

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

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

Dotyczy

Produkt Wersje
.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

Zobacz też