C# 在C语言的XmlReader中从XML填充组合框#
我必须阅读XML并用C#填充组合框。以下是我尝试过的:C# 在C语言的XmlReader中从XML填充组合框#,c#,xml,combobox,xmlreader,C#,Xml,Combobox,Xmlreader,我必须阅读XML并用C#填充组合框。以下是我尝试过的: private class Item { public string Name; public int Id public Item(string name, int id) { Name = name; Id = id; } } 下面是我的XmlReader代码: if (reader.IsStartElement()) { //return only when you
private class Item
{
public string Name;
public int Id
public Item(string name, int id)
{
Name = name;
Id = id;
}
}
下面是我的XmlReader代码:
if (reader.IsStartElement())
{
//return only when you have START tag
switch (reader.Name.ToString())
{
case "Ad_Ref":
Console.WriteLine("Name of the Element is : " + reader.ReadString());
break;
case "Ad_Id":
Console.WriteLine("Your Id is : " + reader.ReadString());
break;
}
}
我如何才能像这样comboBox1.Items.Add(新项目(“学生1”,1))代码>
我的XML只有两个标记,一个是Ad\u Id
,另一个是Ad\u Ref
更新:以下是XML示例
<Listings>
<Listing>
<Ad_Id>1</Ad_Id>
<Ad_Ref>admin</Ad_Ref>
</Listing>
</Listings>
1.
管理
如果您选择XmlReader
,您可以这样做:
用于读取同级元素节点
var lstItems = new List<Item>();
using(XmlReader reader = XmlReader.Create("test.xml"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
if (reader.Name == "Ad_Id")
{
reader.Read();
string sAd_ID = reader.Value;
string sAd_Ref = string.Empty;
if (reader.ReadToFollowing("Ad_Ref"))
{
reader.Read();
sAd_Ref = reader.Value;
}
if(!string.IsNullOrEmpty(sAd_ID) && sAd_Ref != string.Empty)
lstItems.Add(new Item(sAd_Ref, Convert.ToInt32(sAd_ID)));
}
}
}
更新:
将类的访问修饰符更改为public
,并添加属性getter
和setter
public class Item
{
public string Name { get; set; }
public int Id { get; set; }
public Item(string name, int id)
{
Name = name;
Id = id;
}
}
你能分享一下xml文件是什么样的吗?为什么你要将值写入控制台?这只是为了知道我正在获取值…请忽略这一点,然后填充ComboBox创建一个列表,并将其与ComboBox
绑定。问题是如何读取xml以及如何获取第一个和第二个值???请告诉我错误“无法绑定到此行”comboBox1上的“新显示成员”。ValueMember=“Id”答案已更新。这是因为您没有提到使用属性获取和设置。
public class Item
{
public string Name { get; set; }
public int Id { get; set; }
public Item(string name, int id)
{
Name = name;
Id = id;
}
}