将数组转换为ObservableCollection

时间:2013-03-08 09:59:19

标签: c# arrays observablecollection

在C#应用程序中使用以下数组:

CProject[] projectArray = this.proxy.getProjectList(username, password);

但我需要projectArray作为ObservableCollection<CProject>。建议的方法是什么?到目前为止,我正在使用以下声明:

ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);

您是否也会使用此声明或推荐其他方式?

2 个答案:

答案 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));
}