19

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

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

4

4 回答 4

51

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

ObservableCollection<MyType> obsCollection = new ObservableCollection<MyType>(myList);
于 2013-08-07T06:19:38.690 回答
2

ObservableCollection 具有 ObservableCollection 的构造IEnumerable<T> 函数

ObservableCollection<yourType> observable = 
        new ObservableCollection<yourType>(yourListObject);
于 2013-08-07T06:20:51.933 回答
2
var _oc = new ObservableCollection<ObjectType>(_listObjects);
于 2013-08-07T06:19:24.333 回答
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;
}

或者您可以使用此构造函数将元素复制到 ObservableCollection 中,其顺序与列表的枚举器读取它们的顺序相同。

ObservableCollection<YourObject> collection = new ObservableCollection<YourObject>(yourList);
于 2013-08-07T06:18:41.233 回答