![](/img/trans.png)
[英]C# Removing bindinglist item object on datagridview causes Exception
[英]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.