2016-04-30 273 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;