我已经在这个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>();
}
}
}
答案 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";
}
}