林目前正在嘗試的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,以實現記錄分頁。 集合內部添加並從其自己的私人列表中刪除對象_List
。
現在,我可以查看DataGrid中的項目,但只要雙擊一個單元格進行編輯,我就會收到一個InvalidOperationException:'EditItems'不可用。。
我的問題是,我應該實現什麼其他接口,以使我的集合與DataGrid完全兼容?
+1我記得我有同樣的問題,但沒有嘗試過鑽研它,因爲我沒有時間。據我記得,我最終使用ObservableCollection作爲ItemsSource與我自己的集合同步它們。我很好奇,如果有人有解決方案。 –
HCL
2011-03-03 13:52:37
我認爲你想要做的事情可以用更簡單的方式完成。使用現有的集合,然後將DataGridView置於虛擬模式並實現CellValueNeeded(object,... CellEventArgs)處理程序。鏈接:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.virtualmode.aspx虛擬模式的目的是爲了支持你想到的那種分頁場景。 – 2011-03-03 14:06:21
對不起。我忘了在WPF Toolkit for .NET 3.5中使用WPF DataGrid來提及Im。你提到的鏈接是關於WinForms的。 – 2011-03-03 14:15:11