删除列表项
本文关键字:列表 删除列 删除 | 更新日期: 2023-09-27 18:19:51
我这里有一个类和一个买家列表:
public class Purchaser
{
public string Name { get; set; }
public bool Paid { get; set; }
}
List<Purchaser> Purchasers = new List<Purchaser>();
我还有一个代码,可以添加新的购买者,方法是将文本从一个文本框中插入,并将其添加到购买者列表和我的列表框listDOF:
if(box_AddPerson.TextLength != 0)
{
Purchaser purchaser = new Purchaser();
purchaser.Name = caixa_AddJog.Text;
purchaser.Paid = true;
listDOF.Items.Add(purchaser.Name);
Purchasers.Add(purchaser);
}
这个代码运行良好,购买者被添加到购买者列表中,也被添加到我的列表框中
现在我需要的是能够通过列表框删除一个购买者。我试过了,在一个按钮的点击事件中:
if(listDOF.SelectedItems.Count != 0)
{
Purchaser purchaser = new Purchaser();
Purchasers.Remove(purchaser);
listDOF.Items.Remove(listDOF.SelectedItem);
}
这对于从列表框中删除选定的购买者非常有效。但是,如何将他从买方名单中删除呢
提前感谢大家!
尝试使用ListBox
的Data bound items
BindingSource bs = new BindingSource();
Purchasers.Add(new Purchaser { Name = "test", Paid = true });
Purchasers.Add(new Purchaser { Name = "test1", Paid = true });
Purchasers.Add(new Purchaser { Name = "test2", Paid = true });
bs.DataSource = Purchasers;
listBox1.DataSource = bs;
listBox1.DisplayMember = "Name";
那么这是如何去除的。
private void button1_Click(object sender, EventArgs e)
{
bs.RemoveAt(listBox1.SelectedIndex);
}
我不确定你在做什么。您创建了一个新的purchaser
并将其删除?!
您要做的是找到要删除的项目(选定的项目),然后从要删除的列表中删除该项目。
var item_to_remove = // selected index
listDOF.Items.Remove(item_to_remove);
您可以使用它来删除项目:
if ( listDOF.SelectedItems.Count != 0 )
{
Purchasers.RemoveAll( x => x.Name.Equals( listDOF.SelectedItem ) );
listDOF.Items.Remove( listDOF.SelectedItem );
}