私はモデルを表すWPFクライアントにMVVMを使用しており、ユーザーはそのモデルとやりとりすることができます。私はいつも実際のモデルでObservableCollectionクラスを使用しないようにしました。そのモデルの中のIListのようなジェネリックコレクションを選択し、そのIListを基になるコレクションが変更されたときにViewModel上の実際のデータバインドObservableCollectionに変換します。あなたがIEnumerableを インタフェースを実装するすべてのコレクションを列挙できMVVMのモデルでObservableCollectionsを使用する必要がありますか?
:MSDNは、WPFとUIを中心としてクラスを提示していることであることの理由。ただし、コレクションの挿入または の削除によってUIが自動的に更新されるように動的バインディングを設定するには、 コレクションでINotifyCollectionChangedインターフェイスを実装する必要があります。この インターフェイスは、CollectionChangedイベントを公開します。イベントは、基になるコレクションが変更されるたびに になるはずです。 WPFは ObservableCollectionクラスを提供します。これは、 データコレクションの組み込みの実装であり、INotifyCollectionChanged インターフェイスを実装しています。
質問:私の区別は実際には必要ですか?余分な作業と余分なコードです。私はこの話題があまりにも曖昧で主観的であるかもしれないことを理解していますが、多分誰もが従う、普遍的に合意された明確な条約があります。
これは、あなたが絶対にnoと言うことができない状況の1つですが、MVVMのモデルでObservableCollectionが見える場合はかなり強い "コードの匂い"です。 –