Get / SetValueを直接呼び出すことでバイパスできるため、依存関係プロパティラッパーのアクセサメソッドに動作を追加しないことをお勧めします。
OK、それは合理的です。では、この振る舞いをどこに置くのでしょうか?
ValidateValueCallback
依存関係プロパティを登録するときにデリゲートを提供できます。これは、「秒は0〜59の範囲でなければならない」などのコンテキストに依存しないチェックに十分な、単一のパラメーターオブジェクト値を取得する来歴の静的メソッドを呼び出します。
インスタンスに依存するコンテキスト情報が必要な場合があります。たとえば、Dayの有効な範囲は、Monthのインスタンス値によって異なります。
この場合、私たちは何をすべきでしょうか?これは、propdpセッターで処理するのは簡単です。
以下では、PropertyChangedイベントをこの種の検証に使用することが提案されています。これは、実際、この質問を促した状況で私が行ったことです。ただし、この段階で変更がモデルにコミットされているため、これは醜いです。そのため、前の値へのアクセスを提供するために元に戻るスタックを維持する必要があります。
このトピックに関するMSDNの資料はあるようですが、必要な考慮事項を与える時間がありませんでした。