gpt4 book ai didi

c# - 为什么 CheckedListBox DisplayMember 不显示?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:54 24 4
gpt4 key购买 nike

我正在尝试做一些非常简单的事情 - 将 CheckedListBox 绑定(bind)到对象列表。

Class definition

namespace Models
{
public class Department
{
public int ID { get; set; }
public string Description { get; set; }
}
}

Minimal complete code sample to replicate the issue

(Create CheckedListBox clbDepartments first)

    private void Form1_Load(object sender, EventArgs e)
{
List<Department> departmentList = new List<Department>();
departmentList.Add(new Department { ID = 1, Description = "HR" });
departmentList.Add(new Department { ID = 2, Description = "IT" });
departmentList.Add(new Department { ID = 3, Description = "Sales" });

var departmentBindingList = new BindingList<Department>(departmentList);
var departmentSource = new BindingSource(departmentBindingList, null);
clbDepartments.DisplayMember = "Description";
clbDepartments.ValueMember = "ID";
clbDepartments.DataSource = departmentSource;
}

列表绑定(bind) - 我可以在 CheckboxList 中看到一项List<Department> 中的每一项.

但不是显示 "Description" 的值字段,即 DisplayMember , 列表显示 "Models.Department"对于每个项目。

Expected Output

HR

IT

Sales


Actual Output

Models.Department

Models.Department

Models.Department

我做错了什么?

最佳答案

你应该改变顺序。
首先设置DataSource,然后设置DisplayMemberValueMember

这应该有效:

clbDepartments.DataSource = departmentSource;
clbDepartments.DisplayMember = "Description";
clbDepartments.ValueMember = "ID";

关于c# - 为什么 CheckedListBox DisplayMember 不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42052265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com