Ho un ObservableCollection
di elementi associati a un controllo di elenco nella vista personale.Aggiunta di un intervallo di valori a ObservableCollection in modo efficiente
Ho una situazione in cui è necessario aggiungere un blocco di valori all'inizio della raccolta. Collection<T>.Insert
documentazione specifica ogni inserto come operazione O (n) e ogni inserto genera anche una notifica CollectionChanged
.
Pertanto, preferirei inserire l'intera gamma di elementi in una sola mossa, ovvero solo uno shuffle dell'elenco sottostante e, si spera, una notifica CollectionChanged
(presumibilmente un "reset").
Collection<T>
non espone alcun metodo per farlo. List<T>
ha InsertRange()
, ma IList<T>
, che Collection<T>
espone tramite la sua proprietà Items
no.
Esiste un modo per farlo?
Se si dispone di un campo di supporto per la proprietà di raccolta - è possibile assegnare una nuova istanza ad esso e poi alzare 'OnPropertyChanged' per la raccolta manuale proeprty – sll
correlati/Eventuali duplicati: http: // stackoverflow.com/questions/670577/observablecollection-doesnt-support-addrange-method-so-i-get-notified-for-each – Adam
+1 se 'ObservableCollection' ti fa pensare alla meccanica quantistica e all'esperimento a doppia fenditura. – rfmodulator