モデル - ビュー - ビューモデル アーキテクチャの WPF アプリケーションで ViewModel を実装する場合、それをデータ バインド可能にする方法には主に 2 つの選択肢があるようです。DependencyProperty
ビューがバインドされるプロパティを使用する実装と、代わりに ViewModel を実装する実装を見たことがありますINotifyPropertyChanged
。
私の質問は、どちらを優先すべきかということです。パフォーマンスの違いはありますか? ViewModel の依存関係を WPF に与えるのは本当に良い考えですか? 設計上の決定を行う際に他に何を考慮する必要がありますか?
ベストアンサー1
Kent はこのトピックについて興味深いブログを書きました:ビューモデル: POCO と DependencyObjects。
短い要約:
- DependencyObjects はシリアル化可能としてマークされていません
- DependencyObjectクラスはEquals()メソッドとGetHashCode()メソッドをオーバーライドしてシールします。
- DependencyObject にはスレッド アフィニティがあり、作成されたスレッドでのみアクセスできます。
私は POCO アプローチを好みます。INotifyPropertyChanged インターフェイスを実装する PresentationModel (別名 ViewModel) の基本クラスは、次の場所にあります。http://compositeextensions.codeplex.com