在datagrid中分组 - 未显示的行

时间:2010-05-05 14:11:11

标签: c# wpf datagrid grouping

我必须将数据分组到datagrid中。 我已经做了以下事情:

  1. 已将样式添加到资源中:
  2. > <Style x:Key="GroupHeaderStyle"
    > TargetType="{x:Type GroupItem}">
    >         <Setter Property="Template">
    >             <Setter.Value>
    >                 <ControlTemplate TargetType="{x:Type GroupItem}">
    >                     <Expander IsExpanded="False"
    >                      >
    >                         <Expander.Header>
    >                             <TextBlock Text="{Binding Name}"/>
    >                 </Expander.Header>
    >                         <ItemsPresenter />
    >                     </Expander>
    >                 </ControlTemplate>
    >             </Setter.Value>
    >         </Setter>
    >     </Style>
    
    1. 我将样式应用为:
    2.     <dg:DataGrid Grid.Row="1" Name="dgAuthor" HorizontalScrollBarVisibility="Hidden"
      AutoGenerateColumns="False" RowHeaderWidth="17" RowHeight="25">
                      <dg:DataGrid.GroupStyle>
                          <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
                              <GroupStyle.Panel>
                                  <ItemsPanelTemplate>
                                      <dg:DataGridRowsPresenter/>
                                  </ItemsPanelTemplate>
                              </GroupStyle.Panel>
                          </GroupStyle>
                      </dg:DataGrid.GroupStyle>
                 </dg:DataGrid>
      
      1. 我将infoList作为ObservableCollection并将其指定为itemssource,如下所示:

        ListCollectionView lcv = new ListCollectionView(infoList);             lcv.GroupDescriptions.Add(new PropertyGroupDescription(“Author”));             dgAuthor.ItemsSource = lcv;

      2. 其中Info是具有Author,Book,Year属性的类。

        我必须在Author属性上对datagrid进行分组。 我能够显示解释器,但看不到任何行。 任何人都可以告诉我代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

明确设置AutoGenerateColumns="True"可以解决问题。 我还添加了列定义。