将两个可观察的集合组合到一个列表框中?

时间:2009-05-12 00:20:56

标签: c# wpf data-binding observablecollection

我有两个可观察的集合都设置为一类属性。我需要将这两个集合合并到一个列表框中。我已经查看了Compositecollection类,但它不是我需要的。理想情况下,我希望列表框看起来像这样......

将此视为一个列表框控件,每个列表框项包含来自两个可观察集合的源属性的对象。

Collection1 Collection1
--------------------------
Data          Data
--------------------------
Data          Data
--------------------------
Data          Data
--------------------------
Data          Data
--------------------------
Data          Data
--------------------------

我只是想知道是否真的可以这样做?

5 个答案:

答案 0 :(得分:1)

如果我的问题是对的,

你可以创建另一个集合(比如一个List),其中每个元素都是一个匿名类型(或者一个类型取决于你想要的DisplayMember和ValueMember),它由Collection1和Collection2的每个元素组成。

答案 1 :(得分:0)

如果我理解正确,那么不。 ListBox只能绑定到一个源。你可以做的是将两个集合合二为一,然后使用多重绑定在每一行显示两组数据。

答案 2 :(得分:0)

如果我正确理解了您的问题,您应该可以通过使用Linq Join

来实现

答案 3 :(得分:0)

您可以使用MultiBinding并定义一个转换器,将两个(或更多)集合合并为一个。

答案 4 :(得分:0)

CompositeCollection / CollectionContainer - 他们是你的朋友