C# 使用对象列表填充组合框并保持对象属性可访问
C# Using a list of objects to populate combobox and keeping object properties accessible
我在用列表中的值填充组合框时遇到一些困难。
该列表包含以下内容。
public List<Classroom> classes= new List<Classroom>();
包含:
public List<Students> Members{ get;}
public Classroom(string naam, string code, int maxPersonen)
{
Name= name;
Code = code;
MaxPeople= maxpeople;
Members= new List<Members>();
}
我正在尝试用 List
类 填充我的组合框并显示每个 类 如下(目前正在使用):
foreach(Classroom classrooom in repository.classes)
{
cmbClass.Items.Add(classroom.Name + " (" + classroom.Code + ")");
}
我想像这样直观地显示它们,但仍然能够访问所选教室的所有其他 属性(使用时)。
希望这足够清楚明白!
提前致谢!
您需要将列表作为数据源绑定到组合框,而不是一个一个地添加。并且,将只读 属性 DisplayName 添加到课堂 return Name + " (" + Code + ")"将其用作显示值。您可以添加数据源、设置显示值和所选项目 属性 将 return 对象。
cmbClass.DataSource = classes;
cmbClass.DisplayMember = classroom.DisplayName;
参考-组合框Class:
https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox%28v=vs.110%29.aspx
我在用列表中的值填充组合框时遇到一些困难。 该列表包含以下内容。
public List<Classroom> classes= new List<Classroom>();
包含:
public List<Students> Members{ get;}
public Classroom(string naam, string code, int maxPersonen)
{
Name= name;
Code = code;
MaxPeople= maxpeople;
Members= new List<Members>();
}
我正在尝试用 List
类 填充我的组合框并显示每个 类 如下(目前正在使用):
foreach(Classroom classrooom in repository.classes)
{
cmbClass.Items.Add(classroom.Name + " (" + classroom.Code + ")");
}
我想像这样直观地显示它们,但仍然能够访问所选教室的所有其他 属性(使用时)。
希望这足够清楚明白! 提前致谢!
您需要将列表作为数据源绑定到组合框,而不是一个一个地添加。并且,将只读 属性 DisplayName 添加到课堂 return Name + " (" + Code + ")"将其用作显示值。您可以添加数据源、设置显示值和所选项目 属性 将 return 对象。
cmbClass.DataSource = classes;
cmbClass.DisplayMember = classroom.DisplayName;
参考-组合框Class: https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox%28v=vs.110%29.aspx