一切正常,直到我运行此代码:
TicketLine tl = (TicketLine)dgTicketLines.SelectedRows[0].DataBoundItem;
tl.Items--;
if (tl.Items < 1)
CurrentTicket.TicketLines.Remove(tl);
CurrentTicket.TicketLines是BindingList<TicketLine>
运行上面的代码时,我在DataGridView中得到了几个IndexOutOfRange异常。
答案 0 :(得分:0)
取一个ObservableCollection<TicketLine>
而不是BindingList,它应该可以工作。
答案 1 :(得分:0)
您需要通过设置BindingList<TicketLine>.RaiseListChangedEvents = false;
来禁止ListChanged事件,然后在希望任何更改传播到DataGridView时调用BindingList<TicketLine>.ResetBindings();
。当然还有其他方法可以做到这一点,但这对我来说一直很好。