如何将xml数据导入列表框

时间:2013-05-03 15:18:18

标签: c# xml listbox

我遇到了将数据从xml文件转移到列表框的问题。

这是我想在列表框中输入的数据:

<gjester>
  <gjest>
    <id>test</id>
     <fornanv>test</fornanv>
     <etternavn>test</etternavn>
     <adresse>test</adresse>
     <telefonnr>test</telefonnr>
  </gjest>
</gjester> 

我在gui中创建了一个列表框。但我不知道在我的代码中写些什么。

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{
 I don't know what to write here
}

3 个答案:

答案 0 :(得分:0)

这是.NET 4.0(VS2010 C#)并且完全未经测试但可能会给你一个开始......

private void FillListBoxWithThingsIWantToSelect()
{
       XDocument ListBoxOptions = XDocument.Load(Filename);
        foreach (XElement element in ListBoxOptions.Root.Elements())
        {  
        if (element.Name.LocalName.Contains("gjester"))
            {
            foreach (XElement subelement in element.Elements())
               {
               if (subelement.Name.LocalName.Contains("gjest"))
                   {
                   // What do you want to add? The Attribute? Element value
                    listbox1.Items.Add(element.Value.ToString());
                   } 
               }   
            }
        }
}

如果您在列表框中列出了您的平台以及所需内容,则会有所帮助。 您想从构造函数中调用它。

答案 1 :(得分:0)

将大约有多种方法可以将XML文件中的项目添加到列表框中,但是一个好的起点是XMLTextReader类和ListBox.Items.Add()方法的MSDN文档。

此外 - 您可能希望在列表框上的SelectedIndexChanged事件之外的其他位置执行此操作。出于学习目的,请单击按钮进行尝试。

祝你好运 - 在调查上述内容之后,如果你没有弄清楚,我相信有人会帮助你。

答案 2 :(得分:-1)

可以使用字典对象将数据从XML绑定到Listbox。

var dic = (from order in ds.Tables[0].AsEnumerable()
                   select new
                   {
                       UserView = order.Field<String>("Value"),
                       DevView = order.Field<String>("id")

                   }).AsEnumerable().ToDictionary(k => k.DevView, v => v.UserView);

点击here for reference