簡體   English   中英

從列表框中刪除項目

[英]Remove item from listbox

我正在嘗試使用以下代碼行使用C#代碼從列表框中刪除項目:

search_history.Items.RemoveAt(selected);

但是,我收到以下消息: 只讀集合不支持操作。

除了重置列表框並重新輸入項目之外,此問題的解決方法是什么?

您應該通過設置serach_history.ItemsSource = myObservableCollection將ListBox綁定到ObservableCollection<T>

然后你可以執行myObservableCollection.Remove(search_history.SelectedItem) ,該項目將從集合中刪除,UI將相應更新。

通常,您應始終使用數據綁定,而不是直接將項添加到集合中。

search_history.Items.Remove(search_history.SelectedItem);

itemsource的項應該實現INotifyCollectionChanged接口。 為簡化問題,您可以使用ObservableCollection <T>而不是List <T>。 然后使用下面顯示的代碼將很好地工作:

(yourlistbox.ItemsSource as ObservableCollection<T>).RemoveAt(selected);

希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM