wpf-DataGrid 分组

Posted dangnianxiaoqingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf-DataGrid 分组相关的知识,希望对你有一定的参考价值。

C# 数据:

namespace _1.DataGridStudy
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
     ObservableCollection<Student> studentList;
     ICollectionView vm;
        public MainWindow()
        {
            InitializeComponent();
            studentList = new ObservableCollection<Student>();
            studentList.Add(new Student() { 学号 = 1, 姓名 = "Alex", 班级 ="二班"});
            studentList.Add(new Student() { 学号 = 2, 姓名 = "Peter", 班级 = "一班" });
            studentList.Add(new Student() { 学号 = 3, 姓名 = "Zack", 班级 = "三班" });
            studentList.Add(new Student() { 学号 = 4, 姓名 = "TJ", 班级 = "二班" });
            studentList.Add(new Student() { 学号 = 5, 姓名 = "Jack", 班级 = "一班" });
            studentList.Add(new Student() { 学号 = 6, 姓名 = "Jacky", 班级 = "三班" });
            studentList.Add(new Student() { 学号 = 7, 姓名 = "James", 班级 = "一班" });

            dg1.ItemsSource = studentList;
            vm = CollectionViewSource.GetDefaultView(studentList);
            vm.GroupDescriptions.Add(new PropertyGroupDescription("班级"));
            //vm.SortDescriptions.Add(new SortDescription("学号",ListSortDirection.Descending));
        }


    }
    public class Student
    { 
        public int 学号 { get; set; }
        public string 姓名 { get; set; }
        public string 班级 { get; set; }
    }

xaml:

 

 <Grid>

        <DataGrid Name="dg1" AutoGenerateColumns="False" HorizontalAlignment="Left" VerticalAlignment="Top" CanUserAddRows="False" Margin="0">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="学号" Binding="{Binding 学号}" />
                    <DataGridTextColumn Header="姓名" Binding="{Binding 姓名}"  />
                    <DataGridTextColumn Header="班级" Binding="{Binding 班级}"  />
                </DataGrid.Columns>
                <DataGrid.GroupStyle>
                    <GroupStyle >
                        <GroupStyle.ContainerStyle>
                            <Style TargetType="{x:Type GroupItem}">

                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type GroupItem}">
                                            <Expander IsExpanded="True">
                                                <Expander.Header>
                                                    <StackPanel Orientation="Horizontal">
                                                        <TextBlock Text="{Binding Name}" />
                                                        <TextBlock Text="    数量:"/>
                                                        <TextBlock Text="{Binding ItemCount}"/>
                                                    </StackPanel>
                                                </Expander.Header>
                                                <ItemsPresenter/>
                                            </Expander>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </GroupStyle.ContainerStyle>
                    </GroupStyle>
                </DataGrid.GroupStyle>
            </DataGrid>
        
       
    </Grid>

 

以上是关于wpf-DataGrid 分组的主要内容,如果未能解决你的问题,请参考以下文章

wpf-datagrid/listbox隔行换色

wpf-datagrid/listbox隔行换色

WPF-DataGrid增删改查绑定数据源

WPF-DataGrid增删改查不绑定数据源

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

如何从RegEx分组中“排除”空白区域?