JeComment copier la collection observable
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
Dans ce cas, les deux points au même ObservableCollection
... Comment puis-je faire une autre copie?
JeComment copier la collection observable
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
Dans ce cas, les deux points au même ObservableCollection
... Comment puis-je faire une autre copie?
Faites ceci:
// aRef being an Observablecollection
Observablecollection<Entity> bRef = new Observablecollection<Entity>(aRef);
Cela va créer une collection observable mais les éléments sont toujours en pointant vers les articles originaux. Si vous avez besoin des éléments pour pointer un clone plutôt que les éléments d'origine, vous devez implémenter puis appeler une méthode de clonage.
MISE À JOUR
Si vous essayez d'ajouter à une liste, puis la collection observable ont la liste initiale, il suffit de créer le ObservableCollection en passant la liste originale:
List<Entity> originalEnityList = GetThatOriginalEnityListFromSomewhere();
Observablecollection<Entity> bRef = new Observablecollection<Entity>(originalEnityList);
Vous pourriez mettre en œuvre ICloneable
interfacez dans votre définition d'entité, puis faites une copie du ObservableCollection
avec une conversion interne. En conséquence, vous aurez un clone List
sans aucune référence aux anciens éléments. Ensuite, vous pouvez créer votre nouveau ObservableCollection
Whit la clonées List
public class YourEntity : ICloneable {
public AnyType Property { get; set; }
....
public object Clone()
{
return MemberwiseClone();
}
}
La mise en œuvre serait
var clonedList = originalObservableCollection.Select(objEntity => (YourEntity) objEntity.Clone()).ToList();
ObservableCollection<YourEntity> clonedCollection = new ObservableCollection<YourEntity>(clonedList);
Merci ... Mais mon vrai problème est que j'ai une collection observable ... quand j'ajouter un nouveau item .. it ne se reflète pas dans l'interface utilisateur. Donc ce que je fais maintenant est de copier toute la collection dans une collection tempérée ... puis d'ajouter un nouvel objet à la collection temporaire. Ensuite, attribuez de nouveau la collection temporaire. – Relativity
J'ai mis à jour. – Aliostad
Mais j'ai collection observable en entrée. C'est à dire .... J'ai une collection observable de 120 articles..J'ajoute un nouvel élément .. maintenant il a 121 articles ... Puis l'interface utilisateur devrait afficher 121 articles – Relativity