我遇到了将数据从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
}
答案 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);