Как отключить методы call callback в MyDP1_Changed и MyDP1_Changed? мне нужно dissable обратного вызова при изменении значения из другого метода обратного вызоваКак отключить обратный вызов 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);
}
}
если вы хотите его поддерживать оба свойства с одинаковыми значениями всегда ... почему не использовать только 1 недвижимость? – Jose
«СвойствоChangedCallback» вызывается только когда изменяется значение свойства * на самом деле *. Ваша проблема здесь, похоже, опечатка в «MyDP2_Changed». Вероятно, он должен установить 'e.NewValue' вместо' e.OldValue'. Тогда не было бы бесконечной рекурсии. – Clemens
Это простой пример. Мне нужно отменить обратный вызов, когда я изменяю значение из другого метода обратного вызова –