0

CollectionViewSource を使用していくつかのデータを表示しようとしていますが、私が見たすべての例/チュートリアルには、ObservableCollection を継承する別のクラスで使用するカスタム クラスが組み込まれています。CollectionViewSource を使用するのは初めてで、これは MVVM の 3 番目の実装にすぎないため、プログラミング パターンを誤解している可能性がありますが、私の質問は、ObservableCollection クラスやカスタム クラスをどこに配置すればよいかということです。

モデルに入れるべきだと思いますが、何がビューにバインドされるのかわかりません。これらを外部クラスとして構築し、Model/ViewModel で参照するだけですか?

どんな助けでも大歓迎です

4

1 に答える 1

5

ObservableCollection<T>まず、私が実際に行う必要があったとしてもめったにない機能を追加する場合を除き、から継承する必要はありません。

ほとんどの場合、タイプの ViewModel プロパティを作成ObservableCollection<T>し、データをロードするたびにモデルからそれらを設定します。これには、モデルを使用する必要がないという利点がありObservableCollection<T>(それは any である可能性があります)、後で (ほぼ必然的に) モデルから返されたものを別のインスタンス固有のビュー モデルIEnumerable<T>でラップしたい場合に、既存のビュー モデル クラスを変更する義務があるだけです。

ビューモデルにプロパティを設定したらCollectionViewSource、そのプロパティにバインドするだけで、そこからすべてを実行できます。CollectionViewSourceは実際にはプロパティのタイプを気にしないことに注意してください。そのため、コレクションを、ICollection<T>またはIEnumerable<T>(私が信じている)としてビューobjectに公開することができます。CollectionViewSourceとしてObservableCollection<T>

少し支離滅裂な回答で申し訳ありません。簡潔に言うと「場合による」となりますが、私はほとんどの場合、この一般的なアプローチに従う傾向があります。

于 2011-11-01T14:25:46.733 に答える