web-dev-qa-db-fra.com

Convertir une liste <T> en ObservableCollection <T>

J'ai un List<T> qui est rempli à partir de JSON. J'ai besoin de le convertir en un ObservableCollection<T> pour le lier à mon GridView.

Aucune suggestion?

100
raghu_3

ObservableCollection <T> a un constructeur surcharge qui prend IEnumerable <T>

Exemple pour une liste de int:

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

Un autre exemple pour une liste de ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
217
Denis

ObervableCollection possède un constructeur dans lequel vous pouvez passer votre liste. Citant MSDN :

 public ObservableCollection(
      List<T> list
 )
18
Piotr Stapp

Le constructeur Observable Collection prendra un IList ou un IEnumerable.

Si vous constatez que vous allez beaucoup le faire, vous pouvez créer une méthode d'extension simple:

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