0

私は持っている

ObservableCollection<Employee> // 1
ObservableCollection<Boss>// 2
ObservableCollection<Department> //3

ObservableCollection<T> // main >>>I want 1, 2, 3 ObservableCollection to main ObservableCollection

実行する方法?

edit1: 追加してリストにしたいです。アイテムごとではありません。

edit2: wpf アプリケーションでフィールドの 3 つのリストを表示する必要があります。2番目のリストは、リスト内のアイテムを追加/削除できます。

**不明な場合はお知らせください。

4

2 に答える 2

2

あなたがしたいのはコレクションにコレクションを追加することですが、それらのコレクションタイプには互換性がないので、これを試してみます

ObservableCollection<Employee> _employees = ...
ObservableCollection<Boss> _bosses = ...
ObservableCollection<Department> _departments = ...


ObservableCollection<IList> _collections = ...
_collections.Add(_employees);
_collections.Add(_bosses);
_collections.Add(_departments);

_collectionsコレクションへの一般的な引数は であることに注意してくださいIListObservableCollection<T>を実装しているため、セット間のIList異なる であっても、そのタイプのものに割り当て可能です。T

于 2013-10-08T07:54:09.970 に答える
0

AddRangeObservable Collection は、リスト全体を既存のリストに追加できる機能のようなものをサポートしていません。

ちなみに、監視可能なコレクションがすべて T 型である場合は、次のようforeachに反復して を実行できます。adding

        var observableCollection1 = new ObservableCollection<string>();
        var observableCollection = new ObservableCollection<string>();

        foreach (var element in observableCollection1)
        {
            observableCollection.Add(element);
        }

しかし、あなたがやろうとしていることは、私の理解では、 を に追加しようとしてobservable collection of type departmentいることです。different type Tこれは、 に追加しようとしない限り不可能ですobservable collection of simply, objects。警告: 後でボックス化/ボックス化解除する必要がある場合があることに注意してください。

Code Snippet:

        var observableCollection_Department = new ObservableCollection<Department>();
        var observableCollection_Employee = new ObservableCollection<Employee>();
        var observableCollection_Boss = new ObservableCollection<Boss>();

        var observableCollection = new ObservableCollection<object>();

        foreach (var element in observableCollection_Department)
        {
            observableCollection.Add(element);
        }

        foreach (var element in observableCollection_Employee)
        {
            observableCollection.Add(element);
        }

        foreach (var element in observableCollection_Boss)
        {
            observableCollection.Add(element);
        }
于 2013-10-08T07:26:59.600 に答える