[英]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.