Konvertieren Sie eine Liste <T> in eine ObservableCollection <T>

116

Ich habe eine, List<T>die von JSON ausgefüllt wird. Ich muss es in ein konvertieren ObservableCollection<T>, um es an mein zu binden GridView.

Irgendwelche Vorschläge?

raghu_3
quelle

Antworten:

249

ObservableCollection <T> hat einen Konstruktor Überlastung , die IEnumerable <T> nimmt

Beispiel für eine Liste von int:

ObservableCollection<int> myCollection = new ObservableCollection<int>(myList);

Ein weiteres Beispiel für eine Liste von ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
Denis
quelle
Ich ziehe dies der Erstellung einer Erweiterungsmethode vor. Hilft dabei, die Abhängigkeit herunterzuzählen.
Markokstate
1
Wie kann man umgekehrt erreichen?
Arun Prasad
19

ObervableCollection verfügt über einen Konstruktor, in dem Sie Ihre Liste übergeben können. MSDN zitieren :

 public ObservableCollection(
      List<T> list
 )
Piotr Stapp
quelle
6

Der Observable Collection-Konstruktor verwendet eine IList oder eine IEnumerable.

Wenn Sie feststellen, dass Sie dies häufig tun werden, können Sie eine einfache Erweiterungsmethode erstellen:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
PaulC
quelle