0

我有以下代码

clbCodes.DisplayMember = "Name";
clbCodes.ValueMember = "Id";

checkboxItemList = new List<CheckBoxItem>();
foreach (var uagCode in codes)
{
    var checkboxItem = new CheckBoxItem
        {
            Id = uagCode.Code,
            Name = uagCode.UAGLabel
        };
    checkboxItemList.Add(checkboxItem);
}

clbCodes.DataSource = checkboxItemList;

public class CheckBoxItem
{
    public string Name { get; set; }
    public string Id { get; set; }
}

但是,当我运行它时,不会看到我的项目的“名称”,例如,

"Card"
"Toy"
"Table"

我懂了

WindowsApplication1.CheckBoxItem 
WindowsApplication1.CheckBoxItem 
WindowsApplication1.CheckBoxItem 

填充在我的列表框中

我做错了什么?

4

2 回答 2

2

由于您似乎正在向 CheckListBox 添加自定义对象的集合,因此您应该在该类中包含一个ToString()可以返回Name您想要显示的覆盖的覆盖。

public override String ToString()
{
    return this.Name;
}
于 2013-06-06T18:46:09.693 回答
2

您需要覆盖 ToString:

public class CheckBoxItem
{
    public string Name { get; set; }
    public string Id { get; set; }

    public override String ToString()
    {
       return Name;
    }
}
于 2013-06-06T18:52:29.307 回答