已实现了自定义实体集合绑定到datagrid控件的要求,但在进行编辑的时候有时会出现
"向原始数据存储区提交行时出错"的错误,在移除行的时候.经查阅msdn.需要在集合的移除项目时,需要触发接口IBindingList定义的ListChanged事件
![](/Images/OutliningIndicators/ContractedBlock.gif)
重写CollectionBase的方法#Region "重写CollectionBase的方法"
'在清除 CollectionBase 实例的内容之后执行其他自定义进程。
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Overrides Sub OnClearComplete()Sub OnClearComplete()
OnListChanged(New ListChangedEventArgs(ListChangedType.Reset, -1))
End Sub
'在向 CollectionBase 实例中插入新元素之后执行其他自定义进程。
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Overrides Sub OnInsertComplete()Sub OnInsertComplete(ByVal index As Integer, ByVal value As Object)
OnListChanged(New ListChangedEventArgs(ListChangedType.ItemAdded, index))
End Sub
'在从 CollectionBase 实例中移除元素之后执行其他自定义进程。
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Overrides Sub OnRemoveComplete()Sub OnRemoveComplete(ByVal index As Integer, ByVal value As Object)
OnListChanged(New ListChangedEventArgs(ListChangedType.ItemDeleted, index))
End Sub
'当在 CollectionBase 实例中设置值后执行其他自定义进程。
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Overrides Sub OnSetComplete()Sub OnSetComplete(ByVal index As Integer, ByVal oldValue As Object, ByVal newValue As Object)
MsgBox(index)
End Sub
#End Region