2013-05-04 129 views
1

我有Windows窗体读取一个XML文件,将数据从XML文件存储到对象列表。 这是XML文件格式:从对象列表填充列表框

<SalesmanDetails> 
    <firstName>as</firstName> 
    <surname>s</surname> 
    <email>[email protected]</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); 
      } 
     } 

当ListBox中的名字之一,与该人的所有细节一个消息将显示在用户双击。 我会如何去做这件事?

+0

我可能是错的,但在这里:重写ToString()方法,在你的SalesmanDetails类(SalesmanDetails.firstName +“” + SalesmanDetails.surname;在正的ToString()方法返回),并设置Listbox的数据源= salesmanlist(listBox1.Datasource = salesmanList) – 2013-05-04 04:25:51

+0

我意识到我的打开文件方法并没有将信息添加到列表中,我找到了一个快速修复的方法。 – Pindo 2013-05-04 04:31:33

回答

4

在循环中添加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)); 
    } 
+0

完美!奇迹般有效 – Pindo 2013-05-04 05:03:21