回答:
DependencyプロパティはDependencyObjectから派生したクラスのプロパティであり、それらはバッキングフィールドを使用して値を格納するだけでなく、DependencyObjectでいくつかのヘルパーメソッドを使用するという点で特別です。
それらの最も優れた点は、データバインディングのすべての組み込みが組み込まれていることです。何かをバインドすると、変更時に通知されます。
私が役立つとよく書いたと思う唯一の説明はこれです:http : //www.wpftutorial.net/dependencyproperties.html
基本的に、DependencyPropertiesは通常のプロパティとは異なり、クラスのフィールドのセッター/ゲッターであるだけでなく、実行時に動的に実際の値を取得します。SetValue()
DP の方法は非常に単純で、プロパティのローカル値を指定した値に設定します。ただし、GetValue()
DependencyPropertyからしようとすると、最初にローカル値が検索されます。存在しない場合(通常のプロパティとは異なり、DependencyPropertiesで実行可能)、そのような値が見つかるまで論理UIツリーを上に進みます。フレームワークがローカル値を見つけることなくツリーの最上位に到達した場合、フレームワークは事前定義されたデフォルト値をプロパティの値として使用します。
ユーザーが明示的に設定した値のみがローカルに格納されるため、このメソッドを使用すると、DependencyPropertiesが通常のプロパティよりも少ないメモリを消費できます。
また、前述のように、DependencyPropertiesを使用すると、XAMLコードでそれらにバインドして、通常のプロパティでは許可されていないトリガーを設定することもできます。
私はいくつかの曖昧さを解消できたと思います:)
Grid.Row="1"
onはButton
それを親の行#2に設定しますGrid
(行がゼロベースであるため)、Row
DependencyPropertyはGrid
オブジェクトに属します。
DependencyProperties also allow us to bind to them in the XAML code and set triggers on them, which on regular properties is not allowed
、XAMLでのバインドとトリガーの設定の両方、またはトリガーの設定だけが許可されていないという意味ですか?フォローアップに感謝し、物事をより明確にするのを手伝ってください!
Value
値が0にプロパティ(未DP)を、あなたがたときに、あなたのビューが何かをしたいValue
1への変更は、あなたが使用してそうすることができますDataTrigger
し、設定Binding={Binding Path=Value, Value=1}
http://techpunch.wordpress.com/2008/09/25/wpf-wf-what-is-a-dependency-property/は、WFとWPFの両方のコンテキストにおける依存関係プロパティの適切な説明を提供します。
抜粋:
重要なポイント–依存関係プロパティの値が解決される
依存関係プロパティの最終的な目標は、他のプロパティと同様に、状態を管理することです。ただし、通常の.Netプロパティとは異なり、ローカルプロパティの値はインスタンス変数に格納されません。
代わりに、依存関係プロパティは依存関係プロパティフレームワークに登録され、基になるプロパティ値が解決されます。つまり、値は、プロパティ登録で定義されたルールに基づいて依存関係プロパティフレームワークによって決定されます。