utilizzando un metodo Items.AddRange scatola forma vittoria combinata
Domanda
Ho un array di oggetti che sto cercando di aggiungere alla collezione Items di un controllo casella combinata con il metodo AddRange. Il metodo richiede un object[]
ma quando lo passo il nome della matrice che è stata inizializzata con alcuni valori, si lamenta:
La partita metodo migliore overload per
System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])
ha alcuni argomenti non validi.
La classe che definisce gli oggetti del mio array è molto semplice:
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 }
};
questo è dove provo a chiamare AddRange
:
combobox1.Items.AddRange(actions);
e questa è la linea che si tratta di lamentarsi - c'è qualche passo mi manca per essere in grado di farlo? funziona benissimo quando sto solo l'aggiunta di un semplice string[]
Soluzione
L'ho provato in un progetto di prova # .NET C come qui di seguito e funziona benissimo. Il codice di esempio è il seguente:
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;
}
}
Quindi è necessario dirci dove avete dichiarato le azioni oggetto.