2013-08-07 13 views
10

Jestem w wpf i mam ogólną listę: Lista. Teraz chcę rzucić go do ogólnej obserwowalne kolekcje: ObservableCollection.Jak przesłać listę <T> do obiektu ObservableCollection <T> w wtf?

Rozumiem, że mogę powtórzyć listę i dodać poszczególne elementy do kolekcji Observable. Jednak wydaje mi się, że musi istnieć wbudowany sposób robienia tego.

+2

Możliwa duplikatu z http://stackoverflow.com/questions/9069445/ the-best-way-to-convert-listobject-to-observablecollectionobject – Nitesh

+0

Czy to wbudowany sposób? http://msdn.microsoft.com/en-us/library/ms653202.aspx – 2kay

+1

Nie można przenieść na niekompatybilny typ, a nawet jeśli był tam, program ulegnie awarii, gdy spróbujesz go użyć. –

Odpowiedz

26

Jeśli chcesz po prostu stworzyć ObservableCollection z List, to wszystko, co trzeba zrobić, to

ObservableCollection<MyType> obsCollection = new ObservableCollection<MyType>(myList); 
2

można to zrobić za pomocą metody rozszerzenie

public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> coll) 
{ 
    var c = new ObservableCollection<T>(); 
    foreach (var e in coll) c.Add(e); 
    return c; 
} 

czy można użyć tego constructor Elementy są kopiowane na ObservableCollection w tej samej kolejności, w jakiej są odczytywane przez wyliczający listy.

ObservableCollection<YourObject> collection = new ObservableCollection<YourObject>(yourList); 
3
var _oc = new ObservableCollection<ObjectType>(_listObjects); 
2

ObservableCollection ma Conttructor dla IEnumerable<T>ObservableCollection

ObservableCollection<yourType> observable = 
     new ObservableCollection<yourType>(yourListObject); 
Powiązane problemy