如何将不同的子ObservableCollection添加到主ObservableCollection

时间:2013-10-08 07:17:39

标签: c# generics collections observablecollection

示例

我有

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

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

怎么办?

edited1:我想将它们添加为列表。不是每个项目。

编辑2:我必须在wpf应用程序上显示3个字段列表。第二个列表可以添加/删除列表中的项目。

**如果不清楚,请告诉我。

2 个答案:

答案 0 :(得分: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也是如此。

答案 1 :(得分:0)

Observable Collection不支持AddRange功能,您可以将整个列表添加到现有列表中。

顺便说一下,如果您的所有可观察集合都是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,除非您尝试将其添加到{{1},否则这是不可能的}}。警告:注意,您可能需要在之后进行装箱/取消装箱。

<强> observable collection of simply, objects

Code Snippet: