WPFの(カスタム)依存プロパティと添付プロパティの違いは何ですか?それぞれの用途は何ですか?実装はどのように異なるのでしょうか?依存関係プロパティとWPFの添付プロパティの違いは何ですか?
答えて
添付プロパティは、依存プロパティの一種です。違いは、その使い方です。
添付プロパティでは、プロパティは、使用されているクラスと同じクラスでは定義されていません。これは通常、レイアウトに使用されます。良い例はPanel.ZIndexかGrid.Rowです。これはコントロール(Button:など)に適用しますが、実際にPanelやGridに定義されています。このプロパティは、ボタンのインスタンスに「アタッチ」されています。
これにより、コンテナは、たとえば、すべてのUIelementで使用できるプロパティを作成できます。
実装の違いについては、基本的にプロパティを定義するときにRegister vs. RegisterAttachedを使用するだけです。
添付プロパティは基本的にコンテナ要素を対象としています。グリッドがあり、グリッドがある場合はこれをグリッド要素の添付プロパティと見なします。このプロパティはtexbox、buttonグリッドにその場所を設定します。
依存プロパティは、基本的に他のクラスに属し、他のクラスで使用されます。 例:矩形のようなもの ここでheightとwidthは四角形の通常のプロパティですが、leftとtopはCanvassクラスに属するので、依存プロパティです。
添付プロパティは、特殊な種類のDependencyPropertiesです。この値について何も知らないオブジェクトに値を付けることができます。 この概念の良い例はレイアウトパネルです。各レイアウトパネルは、その子要素を揃えるために異なるデータを必要とします。 CanvasにはTopとLeft、DockPanelにはDockなどが必要です。独自のレイアウトパネルを書くことができるので、リストは無限です。したがって、すべてのWPFコントロールですべてのプロパティを使用することはできません。 解決策はプロパティに関連付けられています。それらは、特定のコンテキストで別のコントロールからのデータを必要とするコントロールによって定義されます。例えば、親レイアウトパネルによって位置合わせされた要素。
あなたはクラス自体に添付プロパティを定義することも、別のクラスで定義することもできます。私たちは常に、標準のMicrosoftコントロールを拡張するために、添付プロパティを使用することができます。しかし、依存関係のプロパティは、独自のカスタムコントロールで定義します。例えば標準コントロールからコントロールを継承し、独自のコントロールで依存関係プロパティを定義して使用することができます。これは、添付プロパティを定義し、標準コントロールでこの添付プロパティを使用するのと同じです。
- 1. 依存関係のプロパティ依存関係
- 2. wpf/silverlightの依存関係プロパティとjavascriptオブジェクトのプロパティ
- 3. 添付プロパティを別の依存関係プロパティにバインドできません
- 4. カスタムコントロールと依存関係プロパティ
- 5. ユニットテストの依存関係プロパティ
- 6. maven添付依存関係
- 7. WPF添付プロパティ
- 8. wpf:添付プロパティ
- 9. ValidationRule WPFに添付または依存するプロパティ
- 10. WPFデザイナーと依存関係プロパティへのバインドの問題
- 11. WPFのカスタム依存関係プロパティとTwoWayバインディング
- 12. WPF:依存関係プロパティとOneWayToSourceにビューモデルCLRプロパティにGrid.Visibility一方向のバインド
- 13. Mavenのリポジトリと依存関係の違いは何ですか?
- 14. WPF:依存関係プロパティに関する基本的な質問
- 15. WPF:カスタム依存関係プロパティをアニメーション化しますか?
- 16. WPF依存関係プロパティが設定されていません
- 17. WPF、コントロール。依存関係プロパティの値のスタック
- 18. 依存関係のプロパティの再入力
- 19. Gradle依存関係とGradle依存関係のEclipseの違い
- 20. 標準プロパティーの作品が、依存関係プロパティWPF
- 21. 依存関係プロパティの使用コスト
- 22. XAML依存関係プロパティへのバインド
- 23. Silverlight検証依存関係のプロパティ
- 24. 依存関係プロパティを隠す
- 25. Silverlight:依存関係プロパティはいつ利用できますか?
- 26. WPFは、私は依存関係プロパティでボタンから派生単純なクラスを持っている依存関係プロパティ
- 27. 添付された依存関係プロパティの値をプログラムでどのように読み取るのですか?
- 28. WPFユーザーコントロールで非シンプルタイプの依存関係プロパティを使用するためのパターン
- 29. WPFで依存関係のプロパティを変更するUIスレッドにアクセス
- 30. pom xmlの依存関係とプラグインタグの間の違いは何ですか?
しかし、違いは何ですか?私が見たことから、コードを介して別のものにアタッチ不可能なプロパティを付けることができます(これはXAMLではブロックされていると思います)。 – MarqueIV