在 ReportViewer 中表示 "list of lists"

Represent a "list of lists" in a ReportViewer

我想在我的一个 ReportViewer 中表示列表列表。

我的情况示例如下: 在我的代码中,我有一个特定 class 的元素列表。 例如:

ObservableCollection<GroupClass> listOfItems = new ObservableCollection<GroupClass>();

如果我的 class 的所有属性都是简单属性(字符串、整数、...),那么在我的报告中表示此列表没有问题。但我的问题是,在这个 class 中,我还有一个列表:

public class GroupClass
{
    public string GroupName { get; set; }
    public ObservableCollection<ItemPattern> ItemsGroup { get; set; }
}

public class ItemPattern
{
    public string ItemName { get; set; }
    public string ItemValue { get; set; }
}

要在我的 WPF 中显示此信息 window 我没问题,但我不知道如何在 ReportViewer 中简单地表示列表列表。 目前,listOfItems 最多可以有 20 个元素。而 ItemsGroup 最多也可以达到 20 个项目。

我能想到的唯一方法是在报表中创建 20 个表并创建 20 个 DataSet 以按以下方式将它们绑定到我的每个元素:

this.GroupBindingSource.DataSource = listOfItems[0].ItemsGroup;
if (listOfItems.Count > 1)
{
    this.GroupBindingSource2.DataSource = listOfItems[1].ItemsGroup;
    if (listOfItems.Count > 2)
    {
        this.GroupBindingSource3.DataSource = listOfItems[2].ItemsGroup;
        ...

        if (listOfItems.Count > 19)
            this.GroupBindingSource20.DataSource = listOfItems[19].ItemsGroup;
    }
}

有人可以指导我让它更容易维护吗?

我能够使用 SubReport 实现这一点。我遵循了下一个指南: https://marcelwouters.wordpress.com/2011/06/01/showing-a-report-with-a-subreport-in-the-reportviewer-control-which-has-a-odata-service-as-datasource-in-a-wpf-application/