我正在尝试在拖放它后从列表框中删除一个项目,但是当我这样做时,我收到一条消息,说我无法修改列表框,因为它与数据源链接。
问题是我只想从listBox的视图中删除该项,同时将其保留在数据源中。
以下是我试图做的事情:
int indexSelec = listBox3.SelectedIndex;
listBox3.Items.Remove(listBox3.Items[indexSelec]);
有人有解决方案吗?
THX
答案 0 :(得分:0)
您应该将列表框项目存储到列表<字符串> 然后使用该列表添加或删除列表框中的项目。这是一个例子:
首先添加一个新列表:List<string> _items = new List<string>();
现在将项目添加到列表并在列表框中显示:
_items.Add("One");
_items.Add("Two");
_items.Add("Three");
listBox1.DataSource = _items; //this will display added items to List Box
将项目添加到列表框:
_items.Add("New Item " + DateTime.Now.Second);
listBox1.DataSource = null;
listBox1.DataSource = _items;
从列表框中删除项目:
int selectedIndex = listBox1.SelectedIndex;
try
{
_items.RemoveAt(selectedIndex);
}
catch
{
}
listBox1.DataSource = null;
listBox1.DataSource = _items;
答案 1 :(得分:0)
您无法从ListBoxItem
中删除ListBox
,因为它是ReadOnlyCollection
的一部分。
但您可以设置其Visibility
。
ListBoxItem c = (ListBoxItem) ListBox1.ItemContainerGenerator.ContainerFromItem(ListBox1.Items[0]);
c.Visibility = System.Windows.Visibility.Collapsed;