CheckedListBox リスト ボックスに項目を追加するときに、別のオブジェクトへの参照も格納したいと考えています。このオブジェクトの新しいインスタンスを CheckedListBox に追加しようとしました。
public class CheckedListBoxExtention : CheckedListBox
{
private ReferenceItem _referenceItem;
public ReferenceItem storedItem
{
get { return _referenceItem; }
set { _referenceItem = value; }
}
public CheckedListBoxExtention(ReferenceItem storedItem)
{
_referenceItem = storedItem;
}
}
これは、CheckedListBox 内のアイテムが _referenceItem オブジェクトへの参照を持っているにもかかわらず、後で foreach するときに機能します。ただし、このような項目を追加すると、CheckedListBox が空白 (GUI 自体のリスト) として表示されます。そのため、アイテムのテキストなどをオーバーライドする方法を見つけようとしています。
これは私が問題を修正するために使用したコードです
class ReferenceItemWrapper
{
private ReferenceItem _item;
public ReferenceItemWrapper(ReferenceItem item)
{
_item = item;
}
public ReferenceItem getItem
{get {return _item;}}
public override string ToString()
{
return _item.ToString();
}
}
私はラッパーに少し慣れていません。ReferenceItemをCheckedListBoxに直接追加したときに機能しなかったのに、ラップされた後に正確に機能したのはなぜですか?