Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在WPF DataGrid中正确显示分组数据_C#_Wpf_Datagrid_Listcollectionview - Fatal编程技术网

C# 无法在WPF DataGrid中正确显示分组数据

C# 无法在WPF DataGrid中正确显示分组数据,c#,wpf,datagrid,listcollectionview,C#,Wpf,Datagrid,Listcollectionview,我试图显示我的EF查询结果(它有一个GROUPBY子句)并将其显示到DataGrid中。我试图在这里复制这个例子 这是我的XAML代码 <DataGrid ItemsSource="{Binding QueryResult}"> <DataGrid.GroupStyle> <GroupStyle> <GroupStyle.HeaderTemplate> <Dat

我试图显示我的EF查询结果(它有一个GROUPBY子句)并将其显示到DataGrid中。我试图在这里复制这个例子

这是我的XAML代码

<DataGrid ItemsSource="{Binding QueryResult}">
    <DataGrid.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding Path=Name}" />
                    </StackPanel>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander>
                                    <Expander.Header>
                                        <StackPanel Orientation="Horizontal">
                                          <TextBlock Text="{Binding Path=Name}" />
                                          <TextBlock Text="{Binding Path=ItemCount}"/>
                                          <TextBlock Text="Items"/>
                                        </StackPanel>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </DataGrid.GroupStyle>
</DataGrid>

这是我的视图模型

internal void GenerateReport()
{
    Data = Project.GetReport(); **// this is List<IGrouping<string, MyType>>**
    //QueryResult is a ListCollectionView property
    QueryResult= new ListCollectionView(Data);
    QueryResult.GroupDescriptions.Add(new PropertyGroupDescription("train"));
}
内部void生成器报告()
{
Data=Project.GetReport();**//这是一个列表**
//QueryResult是ListCollectionView属性
QueryResult=新建ListCollectionView(数据);
添加(新属性GroupDescription(“train”);
}
这就是我的查询结果

我确实正确地获取了密钥,但是如果您查看我的代码,我有一个针对密钥项的集合。这里没有显示。如何在每列火车上显示这些信息?

编辑

我想我有更多的细节。下面是我的QueryResult集合的外观

基本上,我的QueryResult有10个条目,其中每个条目都有一个名称、条目和条目。
每个项目本身有一个项目,其中有一个键和组。这个组基本上包含了我想在我的DataGrid中显示的项目,这些项目是根据出现的父记录10进行分组的。

我认为问题在于你已经有了分组列表
list
如果你的列表像
list
一样扁平,你通常会在
DataGrid
中使用分组。成功了。现在唯一的问题是,当我点击扩展器时,它需要一段时间来扩展,这取决于该类别中的项目数量。我每个类别大约有50/100个项目,扩展列表大约需要15-20秒。。有什么改进的方法吗?我想问题是你已经有了分组列表
list
如果你的列表像
list
一样扁平,你通常会在
DataGrid
中使用分组。成功了。现在唯一的问题是,当我点击扩展器时,它需要一段时间来扩展,这取决于该类别中的项目数量。我每个类别大约有50/100个项目,扩展列表大约需要15-20秒。。有什么改进的方法吗?