我有以下代码
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
填入我的列表框
我做错了什么?
答案 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;
}
}