-1

我在将数据从 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
}
4

3 回答 3

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

如果您在列表框中列出了您的平台和您想要的内容,将会有所帮助。你想从你的构造函数中调用它。

于 2013-05-03T15:26:17.950 回答
0

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

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

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

于 2013-05-03T15:28:34.880 回答
-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);

点击这里参考

于 2015-02-16T09:22:32.290 回答