有人可以描述我的項(xiàng)目兩者之間的區(qū)別。目前,我有一個(gè)List<MyClass>,并將BindingSource設(shè)置為,將DataGridView設(shè)置為BindingSource。我已經(jīng)實(shí)現(xiàn)了,IEditableObject所以在調(diào)用CancelEdit時(shí),我將對象恢復(fù)為原來的狀態(tài)Memberwise.Clone()將我的列表更改為BindingList可以解決任何問題嗎?使用BindingList有什么優(yōu)點(diǎn)?
3 回答

明月笑刀無情
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
BindingList允許使用事件進(jìn)行雙向數(shù)據(jù)綁定,而List在其集合更改時(shí)不會觸發(fā)事件。
我認(rèn)為這不會解決您的特定問題。

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
例如,DataGrid需要知道何時(shí)將項(xiàng)目添加到列表中以添加新行。為此,它使用BindingList的ListChanged事件。如果將網(wǎng)格直接綁定到List <T>,則不會發(fā)生該事件,并且網(wǎng)格將無法得知更改列表的時(shí)間。您無需擔(dān)心這種情況,因?yàn)锽indingSource為您將List <T>包裝在BindingList中。只要您使用BindingSource而不是列表本身,控件將保持同步。
- 3 回答
- 0 關(guān)注
- 1301 瀏覽
添加回答
舉報(bào)
0/150
提交
取消