私はDataGridView
ジェネリックにバインドされた を持っていBindingList
ます。type の列に並べ替えと検索を適用できるようにしたいDataGridViewImageColumn
。基本的な考え方は、名前を画像に保存し、Tag
並べ替えと検索に使用することです。どうやってやるの?
それを行うにはいくつかの方法があるようです:
- 新しいクラスを継承
System.Drawing.Image
して作成し、それを比較可能にします。Image
は抽象クラスであり、それ (およびIComparable
インターフェイス) から継承すると、次のエラー メッセージが表示されます。型 'System.Drawing.Image' にはコンストラクタが定義されていません。ここで何が問題なのですか?画像はクラスではありabstract
ませsealed
んが、継承できません!
ApplySortCore
から継承されたクラスの保護されたオーバーライド メソッドを使用しますBindingList<T>
。このメソッドは次のようになります。
class MyBindingList<T> : BindingList<T> { ... protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction) { if (prop.PropertyType.Equals(typeof(Image))) { /* I have no idea! */ } } }
DataGridViewColumn
から継承した新しい を作成しDataGridViewImageColumn
ます。- これは簡単ではないようで、他のアイデアが使用できない場合に使用できます。
前もって感謝します