我有两个 ListBox,我想在它们之间移动项目。代码如下所示:
private void FillItems()
{
allItems = GetAllItems();
availableItems = new List<string>(allItems);
selectedItems = new List<string>();
itemsListBox.DataSource = availableItems;
selectedItemsListBox.DataSource = selectedItems;
}
private void addItemButton_Click(object sender, EventArgs e)
{
var itemsToAdd = itemsListBox.SelectedItems;
foreach (string item in itemsToAdd)
{
availableItems.Remove(item);
selectedItems.Add(item);
}
}
很简单。我将字符串从一个列表移动到另一个列表。
现在这不起作用,就像它不应该一样。我意识到它缺少某种通知集合更改的方式。所以我尝试了这些选项:
调用
Refresh()
列表框。徒劳无功。使用额外的数据绑定层 (
BindingSource
)。也无济于事。调用
ResetBindings()
控件。依然没有。
我在这里做错了什么?我应该使用某种可观察的集合吗?