2013-05-08 34 views
80

Tôi có một số List<T> được điền từ JSON. Tôi cần phải chuyển đổi nó thành một số ObservableCollection<T> để liên kết nó với số GridView của mình.Chuyển đổi Danh sách <T> thành một ObservableCollection <T>

Mọi đề xuất?

+5

Một 'Suggestion' sẽ thực hiện tìm kiếm google hoặc nhìn vào phía bên phải của trang này và xem xét một số liên kết 'Related' có một vài ví dụ trên dòng .. cũng ghi nhớ ' Một trong các hàm tạo của ObservableCollection lấy một List làm tham số.' – MethodMan

+0

Duplicate - http://stackoverflow.com/questions/9069445/the-best-way-to-convert-listobject-to-observablecollectionobject/41731406 # 41731406 – vapcguy

Trả lời

162

ObservableCollection < T> có một constructor overload mà mất IEnumerable < T>

Ví dụ cho một danh sách của int:

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

Một ví dụ nữa cho một danh sách của ObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>); 
+0

Tôi thích điều này hơn là tạo ra một phương pháp mở rộng. Giúp giữ sự phụ thuộc đếm ngược. – markokstate

15

ObervableCollection có hàm tạo trong đó bạn có thể chuyển danh sách của mình. Trích dẫn MSDN:

public ObservableCollection(
     List<T> list 
) 
3

Nhà xây dựng Bộ sưu tập có thể quan sát sẽ lấy IList hoặc IEnumerable.

Nếu bạn thấy rằng bạn đang đi để làm điều này rất nhiều, bạn có thể tạo ra một phương pháp mở rộng đơn giản:

public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable) 
    { 
     return new ObservableCollection<T>(enumerable); 
    } 
Các vấn đề liên quan