将数组转换为ObservableCollection

Rob*_*uch 10 c# arrays observablecollection

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

CProject[] projectArray = this.proxy.getProjectList(username, password);
Run Code Online (Sandbox Code Playgroud)

但是我需要的projectArrayObservableCollection<CProject>.建议的方法是什么?到目前为止,我使用以下语句:

ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);
Run Code Online (Sandbox Code Playgroud)

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

ken*_*n2k 9

IEnumerable正如您所做的那样构建一个新的集合就是这样做的方法.


Tal*_*ner 5

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

构建一个继承自 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));
}
Run Code Online (Sandbox Code Playgroud)