无法删除指定的项目
本文关键字:项目 删除 | 更新日期: 2023-09-27 18:03:49
我使用以下代码从列表中获取和项目(票)并根据发票号码删除。但是它删除列表中的第一个项目。
private void btnTktDelete_Click(object sender, EventArgs e)
{
uOp = true;
if (MainListBox.SelectedIndex != -1)
{
Ticket tkt = (Ticket)MainListBox.SelectedItem;
List<Ticket> tlist = GetList<Ticket>(tklp);
Ticket TheTicket = tlist.Find(x => x.InvoiceNumber == tkt.InvoiceNumber);
List<Transaction> tranlist = GetList<Transaction>(trlp);
if (TheTicket != null)
{
Int32 number = TheTicket.InvoiceNumber;
tlist.RemoveAll(x=>x.InvoiceNumber == number);
tranlist.RemoveAll(x => x.InvoiceNumber == number);
SaveList(trlp, tranlist);
SaveList(tklp, tlist);
}
// MainListBox.DataSource = null;
// MainListBox.DataSource = GetList<Ticket>(tklp);
// dgvExport.DataSource = null;
// dgvExport.DataSource = GetList<Ticket>(tklp);
uOp = false;
}
}
您的代码建议多张票可以有相同的发票号码。这对我来说并不直观——应该是独一无二的。获取列表的最简单方法是在字段中存储对列表的引用。
List<Ticket> allTickets = ...
private void btnTktDelete_Click(object sender, EventArgs e)
{
Ticket ticketToRemove = (Ticket)MainListBox.SelectedItem; // need cast?
allTickets.Remove(ticketToRemove);
// save...
}