簡體   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