usando um método Items.AddRange caixa de formulário vitória de combinação
Pergunta
Eu tenho uma matriz de objetos que eu estou tentando adicionar à coleção de itens de um controle caixa de combinação usando o método AddRange. O método leva uma object[]
mas quando eu passar o nome da matriz que foi intialized com alguns valores, ele reclama:
A melhor correspondência método sobrecarregado para
System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])
tem alguns argumentos inválidos.
A classe que define os objetos em minha matriz é muito simples:
public class Action
{
public string name;
public int value;
public override string ToString()
{
return name;
}
}
and my array is declared such:
public Action[] actions = new Action[] {
new Action() { name = "foo", value = 1 },
new Action() { name = "bar", value = 2 },
new Action() { name = "foobar", value = 3 }
};
Este é o lugar onde eu tento AddRange
chamada:
combobox1.Items.AddRange(actions);
e essa é a linha que ele está reclamando - há algum passo que estou em falta para ser capaz de fazer isso? ele funciona muito bem quando estou apenas adicionando um simples string[]
Solução
Eu tentei sair em um projeto de teste # .NET C como abaixo e ele funciona muito bem. O código de exemplo é como abaixo:
public partial class Form1 : Form
{
public Action[] actions = new Action[]
{
new Action() { name = "foo", value = 1 },
new Action() { name = "bar", value = 2 },
new Action() { name = "foobar", value = 3 }
};
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.AddRange(actions);
}
}
public class Action
{
public string name;
public int value;
public override string ToString()
{
return name;
}
}
Então, você precisa nos dizer onde você declarou que as ações objeto.