在非Silverlight世界中,很容易使用LINQ来创建ObservableCollection.这是因为ObservableCollection类具有接受任何IEnumerable <T>或List <T>的构造函数.但是,Silverlight版本没有!这意味着代码如:
var list = (from item in e.Result
select new ViewModel(item)).ToList();
Items = new System.Collections.ObjectModel.ObservableCollection<ViewModel>(list);
Run Code Online (Sandbox Code Playgroud)
不适用于Silverlight.
除了诉诸于每个声明之外,还有其他选择可以完成这项工作吗?
我不这么认为,但你可以使用这种扩展方法使它更清洁.
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2290 次 |
| 最近记录: |