将数组转换为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);

你也用这种说法还是推荐其他方法?

将数组转换为ObservableCollection

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