utilizando un método Items.AddRange cuadro de formulario victoria combo
Pregunta
Tengo una matriz de objetos que estoy tratando de agregar a la colección Items de un control de cuadro combinado utilizando el método AddRange. El método toma una object[]
pero cuando lo paso el nombre de la matriz que ha sido inicializado con algunos valores, se queja:
El partido mejor método sobrecargado para
System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])
tiene algunos argumentos no válidos.
La clase define los objetos de mi matriz es muy simple:
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 }
};
aquí es donde trato de llamar AddRange
:
combobox1.Items.AddRange(actions);
y esa es la línea que se queja - ¿hay algún paso que me falta para ser capaz de hacer esto? funciona muy bien cuando estoy añadiendo un string[]
sencilla
Solución
Lo probé en un proyecto # .NET C prueba de la siguiente manera y funciona bien. El código de ejemplo es la siguiente:
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;
}
}
Por lo que necesita para decirnos dónde ha declarado objeto de las acciones.