当我将一个项目添加到 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 中的项目进行 foreach 时,我有一个对 _referenceItem 对象的引用。但是,当我添加这样的项目时,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时它不起作用时,为什么它被包装后它确实起作用了?