mamJak skopiować kolekcję do zaobserwowania
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
W tym przypadku zarówno wskaż samo ObservableCollection
... Jak zrobić inny egzemplarz?
mamJak skopiować kolekcję do zaobserwowania
Observablecollection<A> aRef = new Observablecollection<A>();
bRef = aRef();
W tym przypadku zarówno wskaż samo ObservableCollection
... Jak zrobić inny egzemplarz?
Wykonaj:
// aRef being an Observablecollection
Observablecollection<Entity> bRef = new Observablecollection<Entity>(aRef);
To stworzy zaobserwowania kolekcji ale elementy są wciąż wskazując na oryginalnych przedmiotów. Jeśli potrzebujesz przedmiotów do wskazania klonu zamiast oryginalnych elementów, musisz zaimplementować, a następnie wywołać metodę klonowania.
UPDATE
Jeśli spróbujesz dodać do listy, a następnie gromadzenie obserwowalne mieć oryginalne listy, wystarczy utworzyć ObservableCollection przekazując oryginalną listę:
List<Entity> originalEnityList = GetThatOriginalEnityListFromSomewhere();
Observablecollection<Entity> bRef = new Observablecollection<Entity>(originalEnityList);
Można wdrożyć ICloneable
interfejs w definicji jednostki, a następnie wykonaj kopię modelu ObservableCollection
za pomocą odlewu wewnętrznego. W rezultacie będziesz mieć sklonowany List
bez odniesienia do starych przedmiotów. Następnie można utworzyć nowy ObservableCollection
odrobina sklonowany List
public class YourEntity : ICloneable {
public AnyType Property { get; set; }
....
public object Clone()
{
return MemberwiseClone();
}
}
Realizacja byłoby
var clonedList = originalObservableCollection.Select(objEntity => (YourEntity) objEntity.Clone()).ToList();
ObservableCollection<YourEntity> clonedCollection = new ObservableCollection<YourEntity>(clonedList);
Dzięki ... Ale moim prawdziwym problemem jest to, mam do zaobserwowania kolekcji ... kiedy dodać nowy element do niego ... to nie jest odbijane w interfejsie użytkownika. Więc to, co teraz robię, to skopiuj całą kolekcję do kolekcji temperowanej ... a następnie dodaj nowy element do kolekcji tymczasowej. Następnie przywróć z powrotem kolekcję temp. – Relativity
Zaktualizowałem. – Aliostad
Ale mam kolekcję obserwowalną jako dane wejściowe. Tj .... Mam widoczną kolekcję 120 przedmiotów .. Dodaję do niej nowy element .. ma 121 elementów ... Następnie powinien wyświetlać 121 elementów. – Relativity