CollectionEditor

System.ComponentModel.CollectionEditorというクラスがあります。
PropertyEditorでコレクションの編集をするときに使うわけですが、
こいつには単にICollectionを実装したクラスを渡してもだめです。


MSDNには↓のように書かれています。

継承時の注意 このエディタでは、Item プロパティを持つコレクションを編集できます。このエディタは、Item プロパティがある場合、その値からコレクションの型を判断します。コレクションにこのプロパティがない場合、または複数の型のコレクションを編集する場合は、このクラスの特定のプロテクト メンバをオーバーライドして、他の型のコレクションもサポートするようにエディタをカスタマイズできます。

CollectionEditor Class (System.ComponentModel.Design) | Microsoft Docs

Reflectorで中身を見てみると、実際には「Item」または「Items」という名称のプロパティが
存在しなければならないようです。


CollectionEditorという名前なのにICollectionを実装しただけではだめなんですね。
いっそIndexAccessibleCollectionEditorとかそんな名前にしてほしかったorz