从列表中删除项目而不从数据源中删除项目 - c#
问题描述:
我试图从列表框中删除项目后,我已经拖放它,但是当我这样做时,我收到一条消息,说我不能修改因为它与数据源链接。从列表中删除项目而不从数据源中删除项目 - c#
事情是,我想从列表框的视图中删除该项目,同时保持它在数据源中。
这是我试图做:
int indexSelec = listBox3.SelectedIndex;
listBox3.Items.Remove(listBox3.Items[indexSelec]);
有谁有办法解决吗?
THX
答
你应该存储列表框项目列表<字符串>然后使用该列表,从列表框中添加或删除项目。下面是例子:
首先添加一个新的列表: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;
答
您无法从ListBox
中删除ListBoxItem
,因为它是ReadOnlyCollection
的一部分。
但您可以设置其Visibility
。
ListBoxItem c = (ListBoxItem) ListBox1.ItemContainerGenerator.ContainerFromItem(ListBox1.Items[0]);
c.Visibility = System.Windows.Visibility.Collapsed;
wpf/winforms? – AnjumSKhan