Comment désactiver les méthodes de rappel d'appel dans MyDP1_Changed et MyDP1_Changed? Je besoin de rappel dissable quand je change la valeur d'une autre méthode de rappelComment désactiver le rappel DependencyProperty
class MyDependencyObject : DependencyObject
{
public object MyDP1 {
get{ return GetValue(MyDP1Property); }
set{ return SetValue(MyDP1Property, value); }
}
public object MyDP2 {
get{ return GetValue(MyDP2Property); }
set{ return SetValue(MyDP2Property, value); }
}
public static readonly DependencyProperty MyDP1Property =
DependencyProperty.Register("MyDP1", typeof(object), typeof(MyDependencyObject)
, new UIPropertyMetadata(MyDP1_Changed));
public static readonly DependencyProperty MyDP2Property =
DependencyProperty.Register("MyDP2", typeof(object), typeof(MyDependencyObject)
, new UIPropertyMetadata(MyDP2_Changed));
private static void MyDP1_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
d.SetValue(MyDP2Property, e.NewValue);
}
private static void MyDP2_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
d.SetValue(MyDP1Property, e.OldValue);
}
}
si vous voulez mantenir les deux propriétés avec les mêmes valeurs toujours ... pourquoi ne pas utiliser seulement 1 propriété? – Jose
Un 'PropertyChangedCallback' est seulement appelé quand une valeur de propriété * réellement * change. Votre problème ici semble être une faute de frappe dans 'MyDP2_Changed'. Il devrait probablement définir 'e.NewValue' au lieu de' e.OldValue'. Alors il n'y aurait pas de récursion infinie. – Clemens
C'est un exemple simple. J'ai besoin de callback dissable quand je change la valeur de l'autre méthode de rappel –