2017-04-10 69 views
0

我需要collectionchanged的事件添加到集合對象:AddHandler的對象

Dim Coleccion As Object = New ObservableCollection(Of Entidad) 

AddHandler Coleccion.CollectionChanged, AddressOf Coleccion_Cambiada 

但它拋出:CollectionChanged不是事件對象

所以,我想:

Dim Evento As EventInfo = Coleccion.GetType().GetEvent("CollectionChanged") 

Evento.AddEventHandler(Coleccion, New EventHandler(AddressOf Coleccion_Cambiada)) 

但引發:無法將System.EventHandler轉換爲System.Collections.Specialized.NotifyCollectionChangedEventHandler

那麼,我怎樣才能添加一個事件爲我不知道的通用observablecollection?

謝謝。

+0

'Dim Coleccion As Object'將集合聲明爲隱藏ObservableCollection接口和方法的Object。幾乎只是什麼信息說 – Plutonix

+0

好吧,但我需要添加事件到一個動態的集合,在那裏我不知道它是什麼, –

回答

0

當您嘗試使用反射添加事件處理程序時,您收到的錯誤是因爲CollectionChanged事件不使用默認事件處理程序。您可以通過使用由CollectionChanged事件使用的特定事件處理程序來修復錯誤。

Evento.AddEventHandler(Coleccion, New System.Collections.Specialized.NotifyCollectionChangedEventHandler(AddressOf Coleccion_Cambiada)) 
+0

地獄,謝謝..我認爲AddEventHandler是錯誤的集合,而不是新的EventHandler –