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. WPF依存関係プロパティ
- 2. UWPでスクロールビューワのアニメーションを添付する依存関係のプロパティ
- 3. 依存関係のプロパティ依存関係
- 4. wpf/silverlightの依存関係プロパティとjavascriptオブジェクトのプロパティ
- 5. 添付プロパティを別の依存関係プロパティにバインドできません
- 6. カスタムコントロールと依存関係プロパティ
- 7. 依存関係プロパティはnull
- 8. ユニットテストの依存関係プロパティ
- 9. wpf:添付プロパティ
- 10. WPF添付プロパティ
- 11. ValidationRule WPFに添付または依存するプロパティ
- 12. WPFバインディングのイメージの幅と高さの依存関係のプロパティ
- 13. maven添付依存関係
- 14. WPF DataGridのItemsプロパティとItemsSourceプロパティの違いは何ですか?
- 15. WPFデザイナーと依存関係プロパティへのバインドの問題
- 16. WPFのカスタム依存関係プロパティとTwoWayバインディング
- 17. c#uwpテンプレートバインディングと依存関係のプロパティ
- 18. 添付された依存関係プロパティから値をプロパティに設定する方法はありますか?
- 19. WPF:依存関係プロパティとOneWayToSourceにビューモデルCLRプロパティにGrid.Visibility一方向のバインド
- 20. Mavenのリポジトリと依存関係の違いは何ですか?
- 21. Mavenの依存関係のバージョンは、プロパティ
- 22. Xamarinフォームでwpfの依存関係プロパティの継承と同じですか?
- 23. WPF:カスタム依存関係プロパティをアニメーション化しますか?
- 24. WPF:依存関係プロパティに関する基本的な質問
- 25. ロードするWPF依存関係プロパティの待機
- 26. TextBoxの添付プロパティWPF
- 27. テンプレートWPFの添付プロパティXAML
- 28. WPF、コントロール。依存関係プロパティの値のスタック
- 29. WPF依存関係プロパティが設定されていません
- 30. 標準プロパティーの作品が、依存関係プロパティWPF
しかし、違いは何ですか?私が見たことから、コードを介して別のものにアタッチ不可能なプロパティを付けることができます(これはXAMLではブロックされていると思います)。 – MarqueIV