0

我将 a 传递List<object>给填充 a 的方法checkedListBox。我的理解是Object.ToString()将对象与checkedListBox项目相关联并显示可读字符串。Object.Name 完成此操作,但随后数据未与项目关联。如何访问项目的ValueMember属性checkListBox

public void CategoryListBox(List<Category> categoryList)
{
    checkedListBox1.Items.Clear();

    foreach (Category category in categoryList)
    {     
        checkedListBox1.Items.Add(category);
    } 
}
4

1 回答 1

0

价值会员CheckBoxList

根据codingbiz先生checkListBox的回答,我对这个关于Property的控件做了一些快速研究ValueMember,所以很明显,从Intellisense我们无法导航这个.DisplayMember.ValueMemberfor checkListBox,所以我发现这个Property已经包含在其中checkListBox但没有显示在其中。更多细节

列出所有名称

通过使用 Linq,我们可以实现这一点。

  public class Category
  {
    public int Id { get; set; }
    public string CategoryName { get; set; }
  }


  List<Category> category = new List<Category>();
  category.Add(new Category { Id = 1, CategoryName = "test"  });
  category.Add(new Category { Id = 2, CategoryName = "let" });
  category.Add(new Category { Id = 3, CategoryName = "go" });
  checkedListBox1.DataSource = category;
  checkedListBox1.DisplayMember = "CategoryName";
  //checkedListBox1.ValueMember = "Id"; 
  //checkedListBox1.Items.AddRange(category.Select(c => c.CategoryName).ToArray());

我希望你能从这个答案中得到一些想法。

于 2013-01-28T01:47:02.567 回答