17

C# アプリケーションでは、次の配列が使用されます。

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

ただし、とprojectArrayしてが必要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 に答える