CheckedListBox数据源无法正确显示

时间:2013-06-06 18:39:25

标签: c# .net winforms datasource checkedlistbox

我有以下代码

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 

填入我的列表框

我做错了什么?

2 个答案:

答案 0 :(得分:2)

由于您似乎正在向CheckListBox添加一组自定义对象,因此您应该在该类的一部分中覆盖ToString(),它可以返回您想要显示的Name

public override String ToString()
{
    return this.Name;
}

答案 1 :(得分:2)

您需要覆盖ToString:

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

    public override String ToString()
    {
       return Name;
    }
}