将数组转换为ObservableCollection
本文关键字:ObservableCollection 转换 数组 | 更新日期: 2023-09-27 18:03:09
在c#应用程序中使用以下数组:
CProject[] projectArray = this.proxy.getProjectList(username, password);
然而,我需要projectArray
作为ObservableCollection<CProject>
。推荐的方法是什么?到目前为止,我使用了以下语句:
ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);
你也用这种说法还是推荐其他方法?
从IEnumerable
构建一个新的集合,就像你做的那样。
恕我直言,每次想要添加对象范围时构建一个新集合并不好,不如遵循以下设计。
创建一个继承ObservableCollection的类,这样你就可以访问Items属性,它是受保护的,然后创建一个AddRange方法,它将添加项目到它
public class MyObObservableCollection<T> : ObservableCollection<T>
{
public void AddRange(IEnumerable<T> items)
{
foreach (var item in items)
{
this.Items.Add(item);
}
}
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add));
}