我想在一个表中一起显示两个集合。我打算为此使用一个水平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没有相同数量的项目。 揭示可绑定组合集合的最佳方法是什么?
答案 0 :(得分:7)
尝试CompositeCollection
课程。有一个很好的例子here,包括展示如何在复合列表中模拟多个项目类型。这里很好的一点是你可以在代码中创建集合并公开它以进行绑定,或者在两个单独绑定的集合中在Xaml中构建它。
答案 1 :(得分:1)
我最终将DataGrid绑定到DataTable的DataView。我为每个日期创建了一个具有可为空的Table和Chair属性的FurniturePerDate对象,并使用了一系列FurniturePerDate来创建DataTable。非常不灵活,但它适用于我的用例。