wpf - 如何在没有扩展器的情况下对数据网格进行分组

标签 wpf xaml wpfdatagrid grouping expander

我正在使用 Datagrid 分组示例 here at MSDN 。示例中的代码使用 Expander 来显示组的子行。我不想在我的代码中使用扩展器。我想始终显示每一行。如何在不使用 Expander 控件的情况下显示分组数据网格中的子行?

最佳答案

您可以使用边框代替扩展器。

 <DataGrid.GroupStyle>
                <!-- Style for groups at top level. -->
                <GroupStyle>
                    <GroupStyle.ContainerStyle>
                        <Style TargetType="{x:Type GroupItem}">
                            <Setter Property="Margin" Value="0,0,0,0"/>                            
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type GroupItem}">   
                                        <Border BorderThickness="1" BorderBrush="Black" CornerRadius="5,5,5,5" Margin="0,0,0,5">
                                            <StackPanel>
                                                <StackPanel Height="30" Orientation="Horizontal">
                                                    <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100" VerticalAlignment="Center"/>
                                                    <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}" VerticalAlignment="Center" />
                                                </StackPanel>

                                                <ItemsPresenter />
                                            </StackPanel>
                                        </Border>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </GroupStyle.ContainerStyle>
                </GroupStyle>
                <!-- Style for groups under the top level. -->
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <DockPanel Background="LightBlue">
                                <TextBlock Text="{Binding Path=Name, Converter={StaticResource completeConverter}}" Foreground="Blue" Margin="30,0,0,0" Width="100"/>
                                <TextBlock Text="{Binding Path=ItemCount}" Foreground="Blue"/>
                            </DockPanel>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                </GroupStyle>
 </DataGrid.GroupStyle>

关于wpf - 如何在没有扩展器的情况下对数据网格进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13917552/

相关文章:

c# - 单击文本框后删除文本

c# - 任务错误处理-Visual Studio停止

c# - 如何在 WPF 和 C# 中暂停视频并从另一个位置播放它

c# - 无法在将 DataView 实例作为项目源的 WPF 数据网格中显示数据

c# - DataGridTextColumn 不允许输入 "double"值

c# - WPF:如何将 OpenFileDialog 的结果绑定(bind)到已绑定(bind)的 TextBox.Text

c# - 如何在不打开另一个窗口的情况下将 PowerPoint 演示文稿嵌入到 WPF 应用程序中?

WPF DataGrid 自定义排序并锁定了一些记录

xaml - VC++ Converter 不是命名空间的成员

wpf - 设置全局字体系列