C# 从对象列表填充列表框
我有一个Windows窗体,它读取xml文件,将xml文件中的数据存储到对象列表中。 这是xml文件格式:C# 从对象列表填充列表框,c#,listbox,C#,Listbox,我有一个Windows窗体,它读取xml文件,将xml文件中的数据存储到对象列表中。 这是xml文件格式: <SalesmanDetails> <firstName>as</firstName> <surname>s</surname> <email>name@example.com</email> <dateOfBirth>01/01/1980</dateOfB
<SalesmanDetails>
<firstName>as</firstName>
<surname>s</surname>
<email>name@example.com</email>
<dateOfBirth>01/01/1980</dateOfBirth>
<streetNameAndNumber>23 st </streetNameAndNumber>
<city>random</city>
<country>Australia</country>
<sales>1000</sales>
<mobilePhoneNumber>+254 123 123 123</mobilePhoneNumber>
<officeNumber>+65 852 256 5698</officeNumber>
</SalesmanDetails>
当用户双击列表框中的一个姓名时,将显示一个包含此人所有详细信息的消息框。
如何执行此操作?在循环中添加ListBoxItem时,可以使用String.Format连接名字和姓氏。通过双击查找SalesmanDetails,可以使用listbox双击事件显示详细信息。以下代码是示例:
private void btnViewAll_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
foreach (SalesmanDetails details in salesmanList)
{
listBox1.Items.Add(String.Format("{0} {1}",details.firstName,details.surname));
}
}
private void listBox1_DoubleClick(object sender, EventArgs e)
{
int SalesmanDetailsIndex = listBox1.SelectedIndex;
SalesmanDetails selectedSalesman=salesmanList[SalesmanDetailsIndex];
MessageBox.Show(String.Format("{0} {1} email {2}",selectedSalesman.firstName,selectedSalesman.surname,selectedSalesman.email));
}
这里我可能错了,但是:重写SalesmanDetails类中的ToString()方法(在ToString()方法中返回SalesmanDetails.firstName+“”+SalesmanDetails.NastName;),并将Listbox的数据源设置为salesmanlist(listBox1.datasource=salesmanlist)我意识到我的“打开文件”方法并没有将信息添加到列表中,我找到了一个快速修复方法。
private void btnViewAll_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
foreach (SalesmanDetails details in salesmanList)
{
listBox1.Items.Add(String.Format("{0} {1}",details.firstName,details.surname));
}
}
private void listBox1_DoubleClick(object sender, EventArgs e)
{
int SalesmanDetailsIndex = listBox1.SelectedIndex;
SalesmanDetails selectedSalesman=salesmanList[SalesmanDetailsIndex];
MessageBox.Show(String.Format("{0} {1} email {2}",selectedSalesman.firstName,selectedSalesman.surname,selectedSalesman.email));
}