DependencyPropertyChangedEventArgs Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des données pour différents événements de modification de propriété. En général, ces événements font état des modifications effectives de valeurs dans la valeur d’une propriété de dépendance en lecture seule. Il est aussi possible de l’utiliser dans le cadre d’une implémentation de PropertyChangedCallback.
public value class DependencyPropertyChangedEventArgs
public struct DependencyPropertyChangedEventArgs
type DependencyPropertyChangedEventArgs = struct
Public Structure DependencyPropertyChangedEventArgs
- Héritage
Exemples
L’exemple suivant utilise la DependencyPropertyChangedEventArgs classe dans le contexte d’une PropertyChangedCallback propriété particulière d’une classe personnalisée qui définit également les événements. Le rappel prend les résultats des anciennes et nouvelles valeurs du système de propriétés comme communiqué par DependencyPropertyChangedEventArgs, et les repackage dans une autre classe RoutedPropertyChangedEventArgs<T>d’arguments d’événements . Les nouveaux arguments sont ensuite utilisés comme données pour un événement « ValueChanged » défini par la classe personnalisée et déclenché par la classe personnalisée.
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
Remarques
Les événements qui utilisent la DependencyPropertyChangedEventArgs classe pour les données d’événements et les DependencyPropertyChangedEventHandler implémentations de méthode pour les gestionnaires, suivent généralement le modèle Is*Changed
de nommage et sont généralement implémentés en tant qu’événements CLR (Common Language Runtime) sans RoutedEvent stockage (ils ne sont pas routés). Certaines méthodes de gestion des classes qui « gèrent » sinon des événements non exposés qui signalent une modification d’état par le biais d’une modification de propriété, par exemple ButtonBase.OnIsPressedChanged, utilisent également la DependencyPropertyChangedEventArgs classe pour les données d’événement.
Le scénario pour PropertyChangedCallback lequel utiliser les arguments pour signaler les anciennes et nouvelles valeurs provenant de l’évaluation du système de propriétés de la propriété. Un rappel qui traite les anciennes et nouvelles valeurs peut choisir une gestion spéciale en fonction de ces valeurs, telles que le choix de ne pas répondre aux modifications de valeur considérées comme insignifiantes.
Constructeurs
DependencyPropertyChangedEventArgs(DependencyProperty, Object, Object) |
Initialise une nouvelle instance de la classe DependencyPropertyChangedEventArgs. |
Propriétés
NewValue |
Obtient ou définit la propriété après modification. |
OldValue |
Obtient la valeur de la propriété avant modification. |
Property |
Obtient l'identificateur pour la propriété de dépendance où la valeur a été modifiée. |
Méthodes
Equals(DependencyPropertyChangedEventArgs) |
Détermine si le DependencyPropertyChangedEventArgs spécifié est équivalent au DependencyPropertyChangedEventArgs actuel. |
Equals(Object) |
Détermine si l'objet fourni est équivalent au DependencyPropertyChangedEventArgs actuel. |
GetHashCode() |
Obtient un code de hachage pour ce DependencyPropertyChangedEventArgs. |
Opérateurs
Equality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs) |
Détermine si deux objets DependencyPropertyChangedEventArgs spécifiés ont la même valeur. |
Inequality(DependencyPropertyChangedEventArgs, DependencyPropertyChangedEventArgs) |
Détermine si deux objets DependencyPropertyChangedEventArgs spécifiés sont différents. |