mvvm-lightには、2つのプロパティ作成スニペットがあります。mvvminpc: 'normal'プロパティを作成します。 mvvmpropaを使用して添付プロパティ(別名依存プロパティ)を作成します。私は、使用するものを選択するときに考慮すべき点についてのガイダンスがあるかどうかを知りたいだけです。mvvm-light:ノーマルプロパティまたは依存性プロパティ
答えて
依存関係プロパティは、UIコンポーネント(コントロールなど)を作成するときに推奨されます。バインディングのパフォーマンスが向上します。
ビジネスオブジェクトがある場合、またはUIコントロールを持たない/作成していない場合、通常のプロパティが使用されます。
私はMVVMライトのこれらのプロパティトピックでもしばらく検索しています。以下は、MVVMのライトで提供されるプロパティスニペットの私の理解です。彼らは異なる目的のために、あなたが他のものを使用することは実際にはありません。
バインド可能なプロパティ - ビューが表示するデータを公開するために、バインド可能なプロパティがViewModelsに作成されます。
例には、従業員のコレクション、または選択した従業員情報を表示します。
依存性プロパティ - コードスニペットについては、特定のビューを参照してください。これらのプロパティは、一定の値に設定するか、のデータバインディングを使用して、ビューモデルデータのに従います。
例には次のものがあります。テキストブロックコントロールの「テキスト」プロパティは、依存関係プロパティです。 「高さ」および「幅」プロパティも依存プロパティです。
アタッチプロパティ - ユーザーコントロールのために特に使用されます。このプロパティは、親コントロールに追加されます。子コントロールは、これらのプロパティを使用して、親コントロール内で特定の方法で動作します。
例には、Dockpanel自体が使用していない「Dock」(接続プロパティー名)があります。内部に含まれる子によって使用されるので、子はDockPanel.Dock = "Top"のプロパティを設定できるようになります。サンプルコードで
<DockPanel>
<TextBlock Text="{Binding EmployeeName}" DockPanel.Dock="Top" />
<Button Content="Click Here" DockPanel.Dock="Bottom" />
</DockPanel>
上述:
バインド可能プロパティはのviewmodelコードでパブリックプロパティであろうEmployeeName、です。
依存性プロパティは、テキストブロックのText = ""プロパティとボタンのContent = ""プロパティです。
添付プロパティは、テキストブロックとボタンで使用されるDockPanel.Dockプロパティですが、実際にはDockpanel自体によって公開されます。 Dockpanelには.Dockコードが含まれていないことに注意してください。
- 1. MVVMLight ViewModelLocatorへの依存性注入
- 2. チェーン依存性プロパティ
- 3. 城ウィンザーはプロパティに依存性を注入しません
- 4. TypeInitializationException依存プロパティ
- 5. Cocoapods依存性は
- 6. スタティッククラスとプロパティを使用した依存性注入
- 7. 依存性プロパティを使用した数値のアップダウンコントロール
- 8. 依存関係のプロパティ依存関係
- 9. MVVM +ユーザーコントロール+依存プロパティ
- 10. 依存プロパティのクリア
- 11. 依存性注入を使用した依存性注入器の注入
- 12. Maven依存性コンバージェンス
- 13. 依存性注入
- 14. キュウリの依存性
- 15. 依存性のコンバージェンスエラー
- 16. Android jar依存性
- 17. Macportスキップ依存性
- 18. Azureキャッシュ依存性
- 19. クラスライブラリの依存性
- 20. Grails:リフレッシュ依存性
- 21. テストまたは生産のための依存性注入?
- 22. Zend Framework依存性注入対Symfony2依存性注入
- 23. ValidationRule WPFに添付または依存するプロパティ
- 24. 依存性プロパティSetValue()とSetCurrentValue()の相違点
- 25. 依存性プロパティの値の保持方法
- 26. カスタムコントロールと依存関係プロパティ
- 27. ユニットテストの依存関係プロパティ
- 28. 依存性注入のSpringの最小依存性とは何ですか?
- 29. Carthageのネストされた依存性
- 30. Asp.Net MVC3またはMVC4でのNinject依存性注入