在C#应用程序中使用以下数组:
CProject[] projectArray = this.proxy.getProjectList(username, password);
但我需要projectArray
作为ObservableCollection<CProject>
。建议的方法是什么?到目前为止,我正在使用以下声明:
ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);
您是否也会使用此声明或推荐其他方式?
答案 0 :(得分:9)
正如您所做的那样,从IEnumerable
构建新集合是实现目标的方法。
答案 1 :(得分:2)
恕我直言,每次想要添加一系列物品时建立一个新的集合并不好,我会遵循以下设计。
构建一个继承自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));
}