DependencyPropertyChangedEventArgs Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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*Changed
nazewnictwa 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. |