Derzeit Winforms und versuchen, Elemente in einer Listbox zu bearbeiten, um nach oben und unten zu bewegen, und ich habe ein paar Hinweise auf hier gefolgt und ich bekomme einen Fehler 'Elemente Sammlung kann nicht geändert werden, wenn die DataSource Eigentum ist festgelegt.C# WinForms DataSource Eigenschaft Fehler
Dies ist mein Code.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
//Add button was clicked
x = x + 1;
_items.Add("New item " + x);
//Change the data source
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
private void button3_Click(object sender, EventArgs e)
{
//The remove button
int selectedIndex = listBox1.SelectedIndex;
try
{
//Removes the item in the list
_items.RemoveAt(selectedIndex);
x = x - 1;
}
catch
{
}
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
private void button4_Click(object sender, EventArgs e)
{
x = 0;
_items.Clear();
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
private void button5_Click(object sender, EventArgs e)
{
MoveUp();
}
private void button6_Click(object sender, EventArgs e)
{
MoveDown();
}
public void MoveUp()
{
MoveItem(-1);
}
public void MoveDown()
{
MoveItem(1);
}
public void MoveItem(int direction)
{
//Checking selected item
if (listBox1.SelectedItem == null || listBox1.SelectedIndex < 0)
return;//No selected item, nothing will happen
//Calculating new index using move direction
int newIndex = listBox1.SelectedIndex + direction;
//Checking bounds of th range
if (newIndex < 0 || newIndex >= listBox1.Items.Count)
return; //Index out of range - nothing will happen
object selected = listBox1.SelectedItem;
//Removing removable element
listBox1.Items.Remove(selected);
//Insert it into new position
listBox1.Items.Insert(newIndex, selected);
//restore selection
listBox1.SetSelected(newIndex, true);
}
}
}
Was '_items' ist und woher es kam? Der Fehler klingt wie eine Listcontrol-Sammlung. Wie der Fehler angibt, verwenden Sie die Sammlung * oder * eine Datenquelle – Plutonix