C# 将Windows窗体ComboSox数据源设置为列表中对象的特定属性
我有一份账户清单:C# 将Windows窗体ComboSox数据源设置为列表中对象的特定属性,c#,winforms,combobox,toolstrip,C#,Winforms,Combobox,Toolstrip,我有一份账户清单: List<Account> accountList; 您可以按如下方式使用DataSource属性。此处id是要在组合框中显示的属性名称 toolStripComboBox1.ComboBox.DataSource = Bank.Bankaccountlist; toolStripComboBox1.ComboBox.DisplayMember = "id"; 您可以使用foreach循环将ID添加到组合框中: foreach (Account account
List<Account> accountList;
您可以按如下方式使用DataSource属性。此处
id
是要在组合框中显示的属性名称
toolStripComboBox1.ComboBox.DataSource = Bank.Bankaccountlist;
toolStripComboBox1.ComboBox.DisplayMember = "id";
您可以使用foreach循环将
ID
添加到组合框中:
foreach (Account account in accountList)
{
comboboxName.Items.Add(account.id);
}
如果希望在应用程序开始时添加项,请在forms类的构造函数中编写代码:
public Form1()
{
InitializeComponent();
WriteIdIntoCombobox();
}
我将foreach放入
WriteIdIntoCombobox()
方法中,以便在需要时可以在代码中的其他地方调用它。谢谢您的帮助。遗憾的是,它不起作用,它只显示“\u 012\u Bank\u program\u Forms.Account”<代码>toolStripComboBox1.ComboBox.DisplayMember=“id”代码>什么都不做,如果我把它注释掉,它也会做同样的事情。您设置了显示成员属性了吗?显示“\u 012\u Bank\u program\u Forms.Account”表示该项目属于该类型。在此处设置DisplayMember应该有效。如果可能,您可以在此处共享代码吗?发布您的帐户
定义,并解释何时调用帐户
构造函数,调用它的内容,什么是银行
,为什么Bankaccountlist
是static
,为什么Account
对象应该知道它的存在。@JimiAccount
和Bank
也是不同的类。我不知道为什么Bankaccountlist
必须是静态的
,但是我的所有其他代码只有在静态的时候才起作用。我在银行
中有一个函数
,它创建了一个账户
,但我在账户
中定义了账户
。我不应该将类
和构造函数
命名为相同的、相当愚蠢的名称。类构造函数需要与它构建的类对象具有相同的名称。这不是重点。看起来Bank
是一个表单,您将该集合设置为静态集合,以便在其他一些类中使用它,而不使用数据绑定或传递引用。如果Bank.Bankaccountlist
(静态或非静态,构建是否糟糕)是Account
对象的集合,则不可能设置组合框数据源,如果Account对象具有id
属性且DisplayMember
设置正确,则最终会将这些\u 012\u Bank\u Programm\u表单.Account
显示为项目文本。
public Form1()
{
InitializeComponent();
WriteIdIntoCombobox();
}