[英]How to remove item from generic list that relates to item in listbox?
我搜索了周圍,但找不到任何參考。
如何刪除與列表listbox
的項目相關的常規列表中的項目?
我目前有一個public static List<Employees>
和一個名為lstRecords
的listbox
,我可以刪除listbox
的項目,但是可以從列表中刪除所有內容,也可以完全刪除任何內容。
這是我使用的第一組代碼:
private void DeleteRecord()
{
if (lstRecords.Items.Count > 0)
{
for (int i = 0; i < lstRecords.Items.Count; i++)
{
if (lstRecords.GetSelected(i) == true)
{
Employees employeeRecord = lstRecords.SelectedItem as Employees;
employee.Remove(employeeRecord);
}
}
lstRecords.Items.Remove(lstRecords.SelectedItem);
}
}
}
這是我正在使用的第二組代碼,我的List屬於部分類,但這全部包含在方法中。
private void DeleteRecord()
{
ListBox lstRecords = new ListBox();
List<object> employee = new List<object>();
employee.RemoveAt(lstRecords.SelectedIndex);
lstRecords.Items.RemoveAt(lstRecords.SelectedIndex);
}
到目前為止,我還沒有任何一套代碼能夠按照我希望的方式工作,我顯然做錯了什么。
我還有一些其他的代碼塊在玩,但它們似乎都朝着正確的方向發展。
最終,我需要能夠雙擊列表中的一個項目以拉出屬性菜單。
您要做的是將ListBox綁定到“員工列表”。 這篇文章顯示了綁定,注釋也顯示了刪除代碼。 這個想法是,當您從數據源中刪除一個項目時,您將不會在列表框中看到它。
DeleteRecord()方法的問題在於,您剛創建的lstRecords對象不是窗體上的ListBox。
您的代碼運行良好,您只需要進行一些小的更改。 第一個代碼塊確定,但是我不知道您的lstRecords在哪里。 但是看看它,只需復制代碼並在雇員對象中有一些記錄后運行它即可。
它在代碼中創建一個列表框,然后將其添加到窗體(Winforms)中並具有lstRecords全局屬性。
ListBox lstRecords;
private void IntializeDemoListbox()
{
lstRecords = new ListBox();
this.Controls.Add(lstRecords);
foreach (var item in employee)
{
lstRecords.Items.Add(item);
}
}
然后,您將能夠使用第一套代碼,另一套代碼將像這樣。
private void DeleteRecord()
{
employee.RemoveAt(lstRecords.SelectedIndex);
lstRecords.Items.RemoveAt(lstRecords.SelectedIndex);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.