最初に、問題のコンテキストを説明します。より良い方向に私を向けることができるかもしれないからです.
オブジェクトに取り消しとやり直しのようなシステムを実装する必要があります。オブジェクトには、一連の依存関係プロパティがあります。一部は double、int、string ですが、一部は DependencyObject 型でもあります。プロパティの値を変更する前に保存する必要があるため、CoerceValueCallback を追加しました。
public static readonly DependencyProperty MyBackgroundProperty =
DependencyProperty.Register("MyBackground", typeof(MyCustomizableBackground),
typeof(MyComponent), new UIPropertyMetadata(default(MyCustomizableBackground), null, new CoerceValueCallback(OnPropertyChanging)));
OnPropertyChanging では、変更する前に値を保存します。MyCustomizableBackground は、いくつかの依存関係プロパティを持つ DependencyObject です。
問題は、この場合、プロパティとしてカスタム オブジェクトがある場合、OnPropertyChanging メソッドはトリガーされませんが、共通の型がある場合はトリガーされることです。
後で編集: 質問の一部が非常に曖昧であることに気付き、別の質問をしました here . 問題の最初の部分で、ジュリアンは私をより良い方向に向けました。