DependencyPropertyChangedEventArgs Struct-datatyp
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Innehåller data för olika egenskapsändringshändelser. Vanligtvis rapporterar dessa händelser effektiva värdeändringar i värdet för en skrivskyddad beroendeegenskap. En annan användning är en del av en PropertyChangedCallback implementering.
public value class DependencyPropertyChangedEventArgs
public struct DependencyPropertyChangedEventArgs
type DependencyPropertyChangedEventArgs = struct
Public Structure DependencyPropertyChangedEventArgs
- Arv
Exempel
I följande exempel används DependencyPropertyChangedEventArgs klassen i kontexten för en PropertyChangedCallback för en viss egenskap för en anpassad klass som också definierar händelser. Återanropet tar resultatet av gamla och nya värden från egenskapssystemet enligt vad som kommuniceras av DependencyPropertyChangedEventArgs, och paketerar om dessa till en annan händelseargumentklass RoutedPropertyChangedEventArgs<T>. De nya argumenten används sedan som data för en "ValueChanged"-händelse som definieras av och genereras av den anpassade klassen.
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
Kommentarer
De händelser som använder DependencyPropertyChangedEventArgs klassen för händelsedata och DependencyPropertyChangedEventHandler metodimplementeringarna för hanterare följer vanligtvis namngivningsmönstret Is*Changedoch implementeras vanligtvis som CLR-händelser (Common Language Runtime) utan RoutedEvent stöd (de är inte routade händelser). Vissa klasshanteringsmetoder som "hanterar" annars oexponerade händelser som rapporterar en tillståndsändring genom en egenskapsändring, till exempel ButtonBase.OnIsPressedChanged, använder DependencyPropertyChangedEventArgs även klassen för händelsedata.
Scenariot för PropertyChangedCallback är att använda argumenten för att rapportera gamla och nya värden som kommer från egenskapssystemets utvärdering av egenskapen. Ett återanrop som bearbetar gamla och nya värden kan välja särskild hantering beroende på dessa värden, till exempel att välja att inte svara på värdeändringar som anses vara obetydliga.
Konstruktorer
| Name | Description |
|---|---|
| DependencyPropertyChangedEventArgs(DependencyProperty, Object, Object) |
Initierar en ny instans av DependencyPropertyChangedEventArgs klassen. |
Egenskaper
| Name | Description |
|---|---|
| NewValue |
Hämtar värdet för egenskapen efter ändringen. |
| OldValue |
Hämtar värdet för egenskapen före ändringen. |
| Property |
Hämtar identifieraren för beroendeegenskapen där värdeändringen inträffade. |
Metoder
| Name | Description |
|---|---|
| Equals(DependencyPropertyChangedEventArgs) |
Avgör om den angivna DependencyPropertyChangedEventArgs är likvärdig med den aktuella DependencyPropertyChangedEventArgs. |
| Equals(Object) |
Avgör om det angivna objektet motsvarar det aktuella DependencyPropertyChangedEventArgs. |
| GetHashCode() |
Hämtar en hash-kod för den här DependencyPropertyChangedEventArgs. |
Operatorer
| Name | Description |
|---|---|
| Equality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs) |
Avgör om två angivna DependencyPropertyChangedEventArgs objekt har samma värde. |
| Inequality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs) |
Avgör om två angivna DependencyPropertyChangedEventArgs objekt är olika. |