0

VS2010、C#、.Net 4.0、および WinFormApplication を使用しています。

データソースから取り込まれたリストボックスがあります。ダブルクリックで一度にアイテムを削除したい。

データソースからリストボックスにデータを入力すると、アイテムを削除できないことをどこかで読みました。これは本当ですか?そうでない場合、個々のアイテムを削除するにはどうすればよいですか?

私は次のことを試しました:

listbox1.Items.Remove(listbox1.SelectedIndex);

listbox1.Items.Remove(listbox1.SelectedIndex);

lbTableColumns.Items.Remove(lbTableColumns.SelectedItem);

次のエラーが発生します。

エラー: DataSource プロパティが設定されている場合、項目コレクションを変更できません。

4

1 に答える 1

0

を使用している場合、エラーが示すように、DataBindingから項目を削除できません。オブジェクトが 内で変更され、プレゼンテーションから削除されたListBox場合はどうなりますか?DataSource

DataSource を使用している場合は、DataSource 自体からオブジェクトを削除する必要があります。次のようなことを試してください:

IList<MyObj> myList = new List<MyObj>();

private void DataBind()
{
    myListBox.BeginUpdate();
    myListBox.DataSource = myList;
    myListBox.EndUpdate();
}

private void OnMyListBoxItemDoubleClicked(object sender, EventArgs e)
{
    myList.RemoveAt(myListBox.SelectedIndex);
    DataBind();
}
于 2012-12-12T08:46:54.543 に答える