删除列表项

本文关键字:列表 删除列 删除 | 更新日期: 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);
}

这对于从列表框中删除选定的购买者非常有效。但是,如何将他从买方名单中删除呢
提前感谢大家!

删除列表项

尝试使用ListBoxData 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 );
  }