2016-04-30 274 views
0

我试图从列表框中删除项目后,我已经拖放它,但是当我这样做时,我收到一条消息,说我不能修改因为它与数据源链接。从列表中删除项目而不从数据源中删除项目 - c#

事情是,我想从列表框的视图中删除该项目,同时保持它在数据源中。

这是我试图做:

int indexSelec = listBox3.SelectedIndex; 

listBox3.Items.Remove(listBox3.Items[indexSelec]); 

有谁有办法解决吗?

THX

+1

wpf/winforms? – AnjumSKhan

回答

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; 
0

您无法从ListBox中删除ListBoxItem,因为它是ReadOnlyCollection的一部分。

但您可以设置其Visibility

ListBoxItem c = (ListBoxItem) ListBox1.ItemContainerGenerator.ContainerFromItem(ListBox1.Items[0]); 

c.Visibility = System.Windows.Visibility.Collapsed;