【问题标题】:Combining two observeable collection to a listbox?将两个可观察的集合组合到一个列表框?
【发布时间】:2009-05-12 00:20:56
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这个 ListBox 的 DisplayMember 和 ValueMember 是什么?
  • 也许你可以举一个更具体的例子?您的第一个和第二个列表中的项目如何相关?

标签: c# wpf data-binding observablecollection


【解决方案1】:

如果我没听错,

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果我正确理解了您的问题,您应该可以使用 Linq Join 来做到这一点

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          CompositeCollection/CollectionContainer - 他们是你的朋友

          【讨论】:

            猜你喜欢
            • 2014-11-29
            • 2013-05-21
            • 1970-01-01
            • 2011-02-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-31
            相关资源
            最近更新 更多