Converta uma Lista <T> em ObservableCollection <T>

116

Eu tenho um List<T>que está sendo preenchido a partir de JSON. Preciso convertê-lo em um ObservableCollection<T>para vinculá-lo ao meu GridView.

Alguma sugestão?

raghu_3
fonte

Respostas:

249

ObservableCollection <T> tem uma sobrecarga de construtor que leva IEnumerable <T>

Exemplo para uma lista de int:

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

Mais um exemplo para uma lista de ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
Denis
fonte
Eu prefiro isso a criar um método de extensão. Ajuda a manter a contagem regressiva de dependências.
markokstate
1
Como conseguir vice-versa?
Arun Prasad
19

ObervableCollection tem um construtor no qual você pode passar sua lista. Citando MSDN :

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

O construtor Observable Collection levará um IList ou um IEnumerable.

Se você descobrir que vai fazer muito isso, pode criar um método de extensão simples:

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