WPF在一个DataGrid中组合了两个集合

时间:2011-01-21 18:41:19

标签: wpf list collections

我想在一个表中一起显示两个集合。我打算为此使用一个水平DataGrid,我想弄清楚将集合暴露给DataGrid的最佳方法是什么。 (此处描述了一个水平DataGrid解决方案:WPF horizontal DataGrid

椅子和桌子的一些荒谬的例子。在我的应用程序中,我有一个表列表和一个主席列表(表和主席都有Date和NumberOfItems属性):

public List<Table> TableList { get; set; }
public List<Table> ChairList { get; set; }

在xaml中,我想将DataBind添加到一个组合列表中,以便得到类似的内容:

Date             | 01-Jan-2011 | 02-Jan-2011 | 03-Jan-2011 | 04-Jan-2011 
Number of tables |     5       |     6       |             |     7       
Number of chairs |     3       |             |     2       |       

TableList和ChairList没有相同数量的项目。 揭示可绑定组合集合的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

尝试CompositeCollection课程。有一个很好的例子here,包括展示如何在复合列表中模拟多个项目类型。这里很好的一点是你可以在代码中创建集合并公开它以进行绑定,或者在两个单独绑定的集合中在Xaml中构建它。

答案 1 :(得分:1)

我最终将DataGrid绑定到DataTable的DataView。我为每个日期创建了一个具有可为空的Table和Chair属性的FurniturePerDate对象,并使用了一系列FurniturePerDate来创建DataTable。非常不灵活,但它适用于我的用例。