ViewModel の INotifyPropertyChanged と DependencyProperty の比較 質問する

ViewModel の INotifyPropertyChanged と DependencyProperty の比較 質問する

モデル - ビュー - ビューモデル アーキテクチャの WPF アプリケーションで ViewModel を実装する場合、それをデータ バインド可能にする方法には主に 2 つの選択肢があるようです。DependencyPropertyビューがバインドされるプロパティを使用する実装と、代わりに ViewModel を実装する実装を見たことがありますINotifyPropertyChanged

私の質問は、どちらを優先すべきかということです。パフォーマンスの違いはありますか? ViewModel の依存関係を WPF に与えるのは本当に良い考えですか? 設計上の決定を行う際に他に何を考慮する必要がありますか?

ベストアンサー1

Kent はこのトピックについて興味深いブログを書きました:ビューモデル: POCO と DependencyObjects

短い要約:

  1. DependencyObjects はシリアル化可能としてマークされていません
  2. DependencyObjectクラスはEquals()メソッドとGetHashCode()メソッドをオーバーライドしてシールします。
  3. DependencyObject にはスレッド アフィニティがあり、作成されたスレッドでのみアクセスできます。

私は POCO アプローチを好みます。INotifyPropertyChanged インターフェイスを実装する PresentationModel (別名 ViewModel) の基本クラスは、次の場所にあります。http://compositeextensions.codeplex.com

おすすめ記事