17

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

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

但是我需要projectArrayas 一个ObservableCollection<CProject>. 推荐的方法是什么?到目前为止,我正在使用以下语句:

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

您还会使用此声明还是会推荐其他方式?

4

2 回答 2

16

像你一样从一个新的集合中建立一个新的集合IEnumerable是这样做的方法。

于 2013-03-08T10:01:02.710 回答
3

恕我直言,每次您想添加对象范围时构建一个新集合并不好,而是我会遵循以下设计。

构建一个继承自 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));
}
于 2013-03-08T10:14:24.657 回答