如何将List <t>转换为wpf中的ObservableCollection <t>?</t> </t>

时间:2013-08-07 06:15:49

标签: c# wpf

我在wpf中,并且有一个通用列表:List。 现在我希望将它转换为通用的可观察集合:ObservableCollection。

我知道我可以迭代列表并将每个单独的项添加到Observable集合中。 但是,在我看来,必须有一种内置的方式来做到这一点。

4 个答案:

答案 0 :(得分:33)

如果您只想从ObservableCollection创建List,那么您需要做的只是

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

答案 1 :(得分:2)

var _oc = new ObservableCollection<ObjectType>(_listObjects);

答案 2 :(得分:1)

您可以使用扩展方法

来完成
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;
}

或者您可以使用此constructor元素将按照列表枚举器读取的顺序复制到ObservableCollection上。

ObservableCollection<YourObject> collection = new ObservableCollection<YourObject>(yourList);

答案 3 :(得分:1)

ObservableCollection具有IEnumerable<T> ObservableCollection

的Conttructor
ObservableCollection<yourType> observable = 
        new ObservableCollection<yourType>(yourListObject);