Have you tried using the constructor from the ObservableCollection<T>? There’s a constructor that accepts a List<T>.
I’m not sure if you’re aware of this, but you can use .Net Reflector (a freeware app) to disassemble the framework in order to see what’s available inside the class. I’ll post some code that I pulled from the 4.0 framework below including the constructor. As you can see there’s a method in the ObservableCollection<T> called CopyFrom which populates an items collection in the ObservableCollection<T> base class. Unfortunately the class signatures are different so they're not exactly interchangeable...
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
public ObservableCollection(List<T> list) : base((list != null) ? new List<T>(list.Count) : list)
{
this._monitor = new SimpleMonitor<T>();
this.CopyFrom(list);
}
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable