Tengo un ObservableCollection
de elementos que están vinculados a un control de lista en mi opinión.Agregar un rango de valores a un ObservableCollection eficientemente
Tengo una situación en la que necesito agregar un trozo de valores al inicio de la colección. Collection<T>.Insert
documentación especifica cada inserción como una operación O (n), y cada inserción también genera una notificación CollectionChanged
.
Por lo tanto, idealmente me gustaría insertar toda la gama de elementos en un solo movimiento, lo que significa solo una mezcla de la lista subyacente, y con suerte una notificación CollectionChanged
(presumiblemente un "reinicio").
Collection<T>
no expone ningún método para hacer esto. List<T>
tiene InsertRange()
, pero IList<T>
, que Collection<T>
expone a través de su propiedad Items
no.
¿Hay alguna manera de hacerlo?
Si usted tiene un campo respaldo de propiedad de colección - Se puede asignar una nueva instancia a ella y luego subir 'OnPropertyChanged' para proeprty recogida manualmente – sll
relacionados/posible duplicado: http: // stackoverflow.com/questions/670577/observablecollection-doesnt-support-addrange-method-so-i-get-notified-for-each – Adam
+1 si 'ObservableCollection' te hace pensar en la mecánica cuántica y el experimento de doble rendija. – rfmodulator