1. ホーム
  2. wpf

[解決済み】INotifyPropertyChangedとViewModelのDependencyPropertyの比較

2022-03-25 18:39:27

質問

Model-View-ViewModel アーキテクチャの WPF アプリケーションで ViewModel を実装する場合、データバインド可能にする方法として、大きく 2 つの選択肢があるようです。私が見た実装では DependencyProperty を実装したViewModelを見たことがあります。 INotifyPropertyChanged の代わりに

私の質問は、どのような場合にどちらを選ぶべきかということです。パフォーマンスの違いはあるのでしょうか?ViewModel の依存関係を WPF に渡すのは本当に良いアイデアですか?設計を決定する際に、他に何を考慮する必要がありますか?

解決方法は?

このテーマについて、Kentが興味深いブログを書いています。 ビューモデル。POCOとDependencyObjectの比較 .

簡単な要約です。

  1. DependencyObjectは、以下のようにマークされていません。 シリアライザブル
  2. DependencyObject クラスは、Equals() および GetHashCode() メソッド
  3. DependencyObjectはスレッドアフィニティーを持ち、以下の場合にのみアクセスすることができます。 が実行されたスレッドで 作成

私はPOCO方式が好きです。INotifyPropertyChangedインターフェイスを実装したPresentationModel(別名ViewModel)のベースクラスは、こちらにあります。 http://compositeextensions.codeplex.com