Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言的XmlReader中从XML填充组合框#_C#_Xml_Combobox_Xmlreader - Fatal编程技术网

C# 在C语言的XmlReader中从XML填充组合框#

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

我必须阅读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 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;
    }
}