2010-12-28 9 views
1

の値を確認するかどうかは、かなり一般的なラッパーは何かのようになります実際に値をコミットしてOnPropertyChangedを呼び出す前に、値が 'set'ブロックで変更されました。依存関係プロパティに対しても同じことをする必要がありますか?すなわち:C#依存関係プロパティC#でカスタム依存関係proertiesを書く上でCLRラッパー

...これは完全に不要で、既にCLRによって処理されていますか?私がSetValueを呼び出す前に何らかのチェックをするのが気にならないと思ったMSDNのすべての例。どうもありがとう。

+1

getter/setterが必ずしも呼び出されるとは限りません。 WPFは直接値を設定しようとします。 – Rohit

+0

リマインダーありがとう!私の場合は、バインディングではなくCLRラッパーを介して値を設定しているときがありますので、この問題は本当にこの状況に関係しています。それにもかかわらず、依存性特性が実際にどのように機能するかについて考えるのは害ではありません。乾杯。 –

答えて

1

短い答えは、フレームワークが既に気にしていないことです。

実際には、Adam Nathanの「Windows Presentation Foundation」によると、XAMLコンパイラはコンパイル時にプロパティワッパーに依存します。ただし、.NETプロパティラッパーは実際にはXAMLの実行時にバイパスされます。したがって、実際にGetValue/SetValueに加えて、あらゆる種類のロジックの追加を避ける必要があります。 setterで追加したロジックは、プロパティを明示的に呼び出す場合にのみ実行されます。ただし、XAMLでそのプロパティをバインドすると、ランタイムはそのプロパティをスキップします。あなたのセッターにバグがある場合、これはあなたに理解する時間がかかるかもしれません。もしあなたがその本を手に持っていたら53ページを見てください。

+0

ありがとうございます - 私は見てみる必要がある本のように聞こえる! –

+0

ああ、確かに。それは良い本です。 –

0

いいえ、それは依存関係プロパティシステムによって処理されます。