从对象列表中填充列表框

时间:2013-05-04 04:12:23

标签: c# listbox

我有Windows表单读取xml文件,将xml文件中的数据存储到对象列表中。 这是xml文件格式:

<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>

当用户点击“查看全部”按钮时,xml文件中所有人的firstName和姓氏应出现在列表框中。

这是我到目前为止的方法:

private void btnViewAll_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            foreach (SalesmanDetails details in salesmanList)
            {
                listBox1.Items.Add(details.firstName +" "+ details.surname);
            }
        }  

当用户双击列表框中的某个名称时,将显示一个包含该人员所有详细信息的消息框。 我该怎么做呢?

1 个答案:

答案 0 :(得分:6)

在循环中添加ListBoxItem时,可以使用String.Format连接名字和姓氏。您可以使用列表框DoubleClick事件通过在DoubleClick上查找SalesmanDetails来显示详细信息。以下代码为示例:

    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));
    }