6

我目前正在尝试将 DataGrid.ItemsSource 绑定到自定义 RowCollection,该 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 完全兼容,我应该实现哪些其他接口?

4

1 回答 1

3

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

编辑

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

IEditableObject 接口在此处 另见 IEditableCollectionView此处

于 2011-03-03T15:51:46.307 回答