编程语言
首页 > 编程语言> > c# – 为(CheckedListBox)使用自定义对象.Items.Add()

c# – 为(CheckedListBox)使用自定义对象.Items.Add()

作者:互联网

当我将项添加到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对象的引用.但是,当我添加这样的项目时,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时,为什么它在包装后无法正常工作?

解决方法:

CheckedListBox使用列表中对象的ToString方法填充框中的标题.不要扩展CheckedListBox,只需创建一个包装类,它允许您存储引用和标题,并实现一个返回标题的ToString方法.只需创建一个包装器对象,将文本粘贴在其中,将引用粘贴在其中,然后将包装器对象添加到列表框中.

标签:c,checkedlistbox
来源: https://codeday.me/bug/20190626/1294907.html