繁体   English   中英

从BindingList中删除对象时,C#DataGridView引发异常

[英]C# DataGridView throws exception when removing object from BindingList

一切运行良好,直到我运行以下代码:

TicketLine tl = (TicketLine)dgTicketLines.SelectedRows[0].DataBoundItem;
tl.Items--;
if (tl.Items < 1)
    CurrentTicket.TicketLines.Remove(tl);

CurrentTicket.TicketLines是BindingList<TicketLine>

运行上面的代码时,我在DataGridView中收到几个IndexOutOfRange异常。

采取ObservableCollection<TicketLine>而不是BindingList,它应该可以工作。

您需要通过设置BindingList<TicketLine>.RaiseListChangedEvents = false;来抑制ListChanged事件BindingList<TicketLine>.RaiseListChangedEvents = false; 然后调用BindingList<TicketLine>.ResetBindings(); 当您希望将任何更改传播到DataGridView时。 当然,还有其他方法可以执行此操作,但这对我来说一直很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM