hoCome copiare raccolta osservabile
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
In questo caso, sia al punto stesso ObservableCollection
... Come faccio a fare una copia diversa?
hoCome copiare raccolta osservabile
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
In questo caso, sia al punto stesso ObservableCollection
... Come faccio a fare una copia diversa?
fare questo:
// aRef being an Observablecollection
Observablecollection<Entity> bRef = new Observablecollection<Entity>(aRef);
Questo creerà una collezione osservabile ma le voci sono ancora indicando gli elementi originali. Se è necessario che gli elementi puntino a un clone anziché agli elementi originali, è necessario implementare e quindi chiamare un metodo di clonazione.
UPDATE
Se si tenta di aggiungere a una lista e poi la raccolta osservabile avere la lista originale, basta creare l'ObservableCollection passando la lista originale:
List<Entity> originalEnityList = GetThatOriginalEnityListFromSomewhere();
Observablecollection<Entity> bRef = new Observablecollection<Entity>(originalEnityList);
si potrebbe implementare ICloneable
interfaccia nella definizione dell'entità e quindi creare una copia di ObservableCollection
con un cast interno. Di conseguenza avrai un clone List
senza alcun riferimento ai vecchi articoli. Allora si potrebbe creare il nuovo ObservableCollection
Pentecoste il clonato List
public class YourEntity : ICloneable {
public AnyType Property { get; set; }
....
public object Clone()
{
return MemberwiseClone();
}
}
L'implementazione sarebbe
var clonedList = originalObservableCollection.Select(objEntity => (YourEntity) objEntity.Clone()).ToList();
ObservableCollection<YourEntity> clonedCollection = new ObservableCollection<YourEntity>(clonedList);
Grazie ... Ma il mio vero problema è che ho una collezione osservabile ... quando aggiungo un nuovo oggetto per it..it non viene riflessa nell'interfaccia utente. Quindi quello che sto facendo ora è copiare tutta la collezione in una collezione temperory ... quindi aggiungere un nuovo elemento alla collezione temporanea. Quindi riassegnare la raccolta temporanea. – Relativity
Ho aggiornato. – Aliostad
Ma ho una collezione osservabile come input. Cioè ... ho una collezione osservabile di 120 articoli .. Aggiungo un nuovo oggetto ad esso..ora ha 121 articoli ... Quindi l'interfaccia utente dovrebbe visualizzare 121 articoli – Relativity