自定义集合在Edit上崩溃了DataGrid

Fed*_*gui 6 collections wpf datagrid toolkit itemssource

我目前正在尝试将DataGrid.ItemsSource绑定到自定义RowCollection,它实现了IList和INotifyCollectionChanged:

Public Class RowCollection(of T)
Implements IList(Of T)
Implements INotifyCollectionChanged
Private _List As New List(Of T)
...

(对不起VB代码,我很快就会将所有代码翻译成C#.)

请注意,该类不是从任何现有的CLR集合派生的.我创建了自己的类,因为我需要覆盖GetItemAt,以实现记录分页.Collection内部添加和删除其自己的私有List中的对象_List.

现在,我可以在DataGrid中查看项目,但只要双击要编辑的单元格,我就会收到InvalidOperationException:'EditItems'不可用..

我的问题是,为了使我的集合与DataGrid完全兼容,我应该实现哪些其他接口?

Vin*_*rgh 3

在这里您可以阅读以下内容:

编辑

默认情况下,您可以直接在 DataGrid 中编辑项目。为了保证可以正确提交和取消编辑,DataGrid 中的对象必须实现 IEditableObject 接口。或者,您可以将 IsReadOnly 属性设置为 true 以禁用 DataGrid 中的编辑。

IEditableObject 接口位于此处 另请参阅此处的IEditableCollectionView