ListView やその他のコントロールが SelectedItems コレクションを処理する方法を模倣しようとしています。アイテムのコレクションを持つクラスがあり、各アイテムには Selected プロパティがあります。
Item が独自の Selected プロパティを変更でき、変更すると親クラスで SelectedItemsChanged イベントが発生し、SelectedItems コレクションが変更を反映するスマートな動作を模倣したいと考えています。
内部リストを含まない SelectedItemsCollection クラスを実装しようとしていますが、代わりにメインの項目リストの各項目の選択状態をチェックします。この方法では、常に更新してメイン リストと同期する必要はありません。
ListView.SelectedListViewItemCollection のメタデータを見ていましたが、次の宣言があります。
public class SelectedListViewItemCollection : IList, ICollection, IEnumerable
Add、Remove、RemoveAt などを実装していません。これは、IList インターフェイスの使用規則に反していませんか。それらを実装しないとコンパイルできません。これは、メタデータの作成方法に問題があるだけですか?
この機能をエミュレートするにはどうすればよいですか?