0
MyDP1_ChangedおよびMyDP1_Changedでコールバックメソッドを無効にするにはどうすればよいですか?私は、他のコールバックメソッド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);
}
}
コールバックを追加および削除するには、これらのメソッドを使用できますか? – Jose
'PropertyChangedCallback'は、プロパティ値*が実際に変更されたときにのみ呼び出されます。ここの問題は 'MyDP2_Changed'のタイプミスです。おそらく 'e.OldValue'ではなく' e.NewValue'を設定するべきです。それでは、無限の再帰はありません。 – Clemens
これは簡単な例です。私は他のコールバックメソッドから値を変更するときに、不快なコールバックが必要です。 –