1

リストにバインドされたデータグリッドを含む WPF アプリケーションがあります。My List は INotifyPropertyChanged インターフェイスを実装しています。そのため、プロパティがいつ変更されたかを確認できます。ただし、新しいアイテムが追加または削除された場合、これが発生したことを通知するイベントはありません。

読んだ後、ObservableCollection が CollectionChanged イベントを介してアイテムが追加または削除されたときに通知できることを確認しました。ただし、ObservableCollection には、リストが克服するいくつかの短所があります。

だから私の質問は、 List と ObservableCollection を組み合わせて両方の機能を利用できるかどうかです。リストを継承させることは可能ですか? もしそうなら、上書きする必要があるメソッドはありますか?

4

1 に答える 1

0

あなたの質問に対する簡単な答えは、「はい、しかし多少の作業が必要です」です。

ObservableCollection<T>クラスは、クラスと同じように、、、、、、インターフェイスを実装Collection<T>するクラスを拡張します。ただし、このクラスはおよびインターフェイスも実装しているため、これらが 2 つの主な違いです。IList<T>ICollection<T>IEnumerable<T>IListICollectionIEnumerableList<T>ObservableCollection<T>INotifyCollectionChangedINotifyPropertyChanged

List<T>したがって、クラスを拡張し、INotifyCollectionChangedINotifyPropertyChangedインターフェースを自分で手動で実装して、両方の世界を最大限に活用することができます。とは言っても、カスタム基本クラスにメソッドを手動で追加した後AddRange、WPF プロジェクトでオブジェクトを表示するために a を使用する必要性を感じたことはありません。SortObservableCollection<T>List<T>

于 2013-09-04T09:27:02.023 に答える