如何将列表填充到组合框中

时间:2015-02-07 20:07:30

标签: c# list

我已经在这个RPG windows窗体游戏上工作了一段时间,我已经被困在这些列表上很长一段时间了。现在我有一个HeadItems.cs,我保留了所有头部项目的实体,我正在创建一个列表,用于填充组合框,用户可以在其中切换设备。我在HeadItems中创建了一个列表,从列表的主屏幕中创建了一个静态readonly,并添加了一个包含多个参数的项目。当我使用" cboHeadItems.Items.Add(Headitem [0];"添加一个项目时,我认为这将采用第一个参数,即字符串名称,并将其填充到组合框中。

public HomeScreen()
        {
            InitializeComponent();
            SetLabels();
            Headitem.Add(new HeadItems("Kyle's Head", 0, 0, 3, 0, 0, 1));

            foreach (HeadItems headitem in Headitem)
            {
                cboHeads.Items.Add(Headitem[0]);
            }
        }

这是我的HeadItems实体:

namespace Engine
{
public class HeadItems
{
    public string Name { get; set; }
    public int ID { get; set; }
    public int Ilvl { get; set; }
    public int Strength { get; set; }
    public int Agility { get; set; }
    public int Intelligence { get; set; }
    public int Stamina { get; set; }
    List<HeadItems> Headitem { get; set; }

    public HeadItems(string name, int id, int ilvl, int strength, int agility, int intelligence,
        int stamina)
    {
        Name = name;
        ID = id;
        Ilvl = ilvl;
        Strength = strength;
        Agility = agility;
        Intelligence = intelligence;
        Stamina = stamina;

        Headitem = new List<HeadItems>();
    }
}
}

2 个答案:

答案 0 :(得分:0)

您没有在foreach循环中使用该变量

尝试:

foreach (HeadItems headitem in Headitem)
{
    cboHeads.Items.Add(headitem.Name);
}

还有其他问题,您正在HeatItem类的构造函数中实例化一个新集合。你有很多方法可以做到,但为了简单起见,我会删除:

List<HeadItems> Headitem { get; set; }

从你的班级开始这样做:

public HomeScreen()
{
        InitializeComponent();
        SetLabels();
        List<HeadItems> headItems = new List<HeadItems>();
        headItems.Add(new HeadItems("Kyle's Head", 0, 0, 3, 0, 0, 1));

        foreach (HeadItems headItem in headItems)
        {
            cboHeads.Items.Add(headItem.Name);
        }
    }

答案 1 :(得分:0)

也许您可以尝试使用绑定列表来控制广告数据源。看看例子......

  public class myItem
    {
        public string ItemName { get; set; }
        public object Value { get; set; }
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            List<myItem> s = new List<myItem>();
            s.Add(new myItem()
            {
                ItemName = "ItemA",
                Value = (object)"BB"
            });


            comboBox1.DataSource = s;
            comboBox1.DisplayMember = "ItemName";
            comboBox1.ValueMember = "Value";
        }
    }