这就是我所做的。
我做了自己的课。
public class Node
{
public string name;
public string type;
public string vm_name;
public string vm_ip;
public string vm_hostname;
}
string[] nodes = new string[2];
Node vm1 = new Node();
Node vm2 = new Node();
我设置了Name属性:
vm1.name = "name1";
vm2.name = "name2";
我把这个类型的所有变量都放在一个字符串
中nodes[0] = vm1.name;
nodes[1] = vm2.name;
之后我将该数组添加到列表框项目
中nodeList.Items.AddRange(nodes);
有没有办法通过从列表框中选择项目来访问变量?
如果有更好的方法,我愿意接受建议。
答案 0 :(得分:2)
使用DisplayMember
和DataSource
属性。并创建一个Nodes
而不是字符串的数组,
var nodes = new []
{
new Node { name = "name1" },
new Node { name = "name2" }
}
nodeList.DisplayMember = "name";
nodeList.DataSource = nodes;
然后,您可以访问SelectedItem
并将其转换为Node
,如下所示:
private void listBox_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedNode = nodeList.SelectedItem as Node;
if (selectedNode != null)
{
...
}
}
答案 1 :(得分:-1)
将列表框直接绑定到Node实例而不是字符串。
var node = (Node) nodeList.SelectItem;