2

WPF アプリケーションを作成するときにコレクションを選択する可能性はすべてありますが、データを格納するときにどのコレクションを使用すればよいかわかりません。ObservableCollections を使用して を実装すれば、すべてが機能するようですINotifyPropertyChanged

ビュー モデルでコレクションを使用する際に自問すべき質問は何ですか? 特に、いつこれらのコレクションを使用する必要がありますか? :

ObservableCollection

List<ClassA>

IList

CollectionView

ICollectionView

IEnumerable

およびリストしたい他のもの。

を渡しますIEnumerableが、どのコレクションが正しいかをどのように知ることができますか? それはすべて、使用しているコントロールに基づいていますか?

4

3 に答える 3

10

項目が追加または削除されたときに GUI を更新する場合に使用ObservableCollectionします。anは自動的に実装されObservableCollectionたリストです。ICollectionChanged

それ以外の場合は使用してくださいList

CollectionView並べ替え、グループ化、フィルタリングなど、より複雑な操作を適用する場合に使用します。

于 2013-07-11T18:29:23.313 に答える
2

コレクションへの項目が追加/移動/削除/置換されたときにコレクションをソースとして受け取るコントロールがそれ自体を更新するようにするには、 を使用してObservableCollection、コントロールの ItemsSource (たとえば) をそのコレクションにバインドする必要があります。

を使用したList<T>場合、バインドされたコントロールは更新の通知を受け取りません。

これは、各アイテムのコンテンツを更新することとは異なります。各アイテムのコンテンツを使用しているコレクションタイプに関係なく(私は信じています)、アイテムオブジェクトが実装している場合にのみ更新されますINotifyPropertyChanged

于 2013-07-11T18:28:53.257 に答える